처음 문제를 봤을 때 약수를 어떻게 구하지? 라는 생각이 들었다.
하지만 생각을 조금만 더 해보자, 결국 약수로 n을 나누면 0이 되지 않나? 하는 생각이 들었다.
그리하여 for문과 if문을 이용하여 아래와 같은 코드를 짜게 되었다.
function solution(n) {
let plus = 0;
for (let i=0; i<n; i++){
if (n%i == 0){
plus+=i;
console.log(i)
}
}
return plus;
}
허나 코드를 실행해보자 코드가 실패하였고, console.log를 이용해 문제점이 무엇인지 찾기 시작했다.
로그를 보자 약수는 다 더해졌는데, 자기 자신을 더하지 못해 생기는 문제였다. 그리하여 마지막 리턴에 본인을 더해주니 문제가 풀렸다.
function solution(n) {
let plus = 0;
for (let i=0; i<n; i++){
if (n%i == 0){
plus+=i;
}
}
return plus+n;
}
'코테' 카테고리의 다른 글
x만큼 간격이 있는 n개의 숫자 (0) | 2024.08.26 |
---|---|
나머지가 1이 되는 수 찾기 (0) | 2024.08.21 |
자릿수 더하기 (0) | 2024.08.19 |
짝수와 홀수 (0) | 2024.08.09 |
배열의 평균값 (0) | 2024.08.09 |