TIL
23.04.07 TIL
DDINYOUNG
2023. 4. 17. 01:13
function solution(left, right) {
let arr = [];
let count = 0;
let result = 0;
for (let i = left; i <= right; i++) {
arr.push(i); // [ 13, 14, 15, 16, 17 ]
for (let j = 0; j <= arr.length; j++) {
for (let l = 0; l <= arr[j]; l++) {
if (arr[j] % l === 0) {
count++;
}
}
if (count % 2 === 0) {
result += arr[j]
} else {
result -= arr[j]
}
}
}
return result
}
처음에는 left와 right사이의 숫자를 배열에 넣고 배열에서 반복문을 돌려서 요소를 빼오는 방식을 사용했다.
그랬더니 반복문이 계속 중복되면서 result의 값도 중복으로 계속 더 해지는건 지 값이 예상과 너무 다르게 나왔다.
거의 두 시간 동안 계속 보다가 chatGPT에게 질문,,,
일단 count변수가 전역에서 선언되어있어서 i값이 바뀌어도 초기화 되지 않아 값이 중첩되고
function solution(left, right) {
let result = 0;
for (let i = left; i <= right; i++) {
let count = 0;
for(let j=1;j<=i;j++){
if(i % j === 0){
count++
}
}
count % 2 === 0? result += i : result -= i;
}
return result
}