티스토리 뷰
코테이토 4기 알고리즘 스터디
- 10월 1주차 공통과제 A 약수의 합 구하기
🎈 문제 및 해석
입력 받은 수의 약수들의 합을 구하여라
1. 약수를 구하기 => 어떤 수 n을 n의 약수로 나누면 0이 된다(자연수 n의 약수 i에 대하여 n%i == 0)는 특성을 활용
2. 그 합을 구하기 = > 위의 조건에 부합하는 i들만 별도로 합 누적하기
✨ 문제 풀이
// JavsScript
function solution(n) {
let sum = 0;
for(let i=1; i<=n; i++){
sum += (n%i==0)? i: 0;
}
return sum;
}
# Python
def solution(n):
sum = 0
for i in range(1, n+1):
sum += i if n % i == 0 else 0
return sum
합을 저장할 sum 변수 선언한다. 자연수 n의 약수는 1보다 크고 n보다 같은 수 중에 존재하므로 반복문을 1부터 n까지만 돌 수 있도록 한다. 돌면서 약수 조건(n%i==0)을 확인한 후 sum에 합계를 누적하고, 반복문이 끝난 후의 sum을 반환한다.
🎯 추가
Python과 JS를 동시에 쓰는 연습을 하다보니 차이점이 한 눈에 보이는 것 같다. 이 차이를 잊지 않으려 두가지 언어 모두 사용중인 만큼 잘 기억하자!
=> Python은 삼항 연산자의 형태가 타 언어와는 조금 다르게 if else를 사용한다.
'Etc > Algorithm & Solving' 카테고리의 다른 글
[JS] 프로그래머스 - 숫자 찾기 (0) | 2023.02.02 |
---|---|
[JS, Python] 문자열 내 p와 y의 개수 (0) | 2022.11.03 |
[JS] 백준 4344 평균은 넘겠지 (0) | 2022.10.03 |
[JS] 백준 10818 최대 최소 구하기 (0) | 2022.10.03 |
[JS, Python] 하샤드 수 구하기 (1) | 2022.09.30 |
Comments