JavaScript 코딩테스트 나머지가 1이 되는 수 찾기 (15일)

음.. 쉽진 않다
어떤 수식을 써야할까 생각하다가 for문이 적합하다고 생각했다
function solution(n) {
var answer = 0;
sum = 0;
for (let x = 3; n > x; x++ ) {
n % x === 1
}
return x ;
}

반쯤 맞은것 같긴한데 규정과 맞지 않아서 에러가 나는 듯 하다
for문안에서 쓰던 x를 바로 리턴시킨다고 해서 에러가 나는 것으로 파악 중이다.
그래서 if문을 통해 sum에 데이터를 저장할 수 있는 구조로 고쳤다.
function solution(n) {
var answer = 0;
sum = 0;
for (let x = 3; n > x; x++ ) {
if (n % x === 1) {
sum += x
}
}
return sum ;
}

결과는 나오긴 하는데 일치하는 결과가 안나온다..
테스트 3번 실행결과 참고해서 수식이 어떻게 동작하는지를 봤는데
if (n % x === 1) {sum += x}
요 수식 때문에 SUM값에 나머지 1을 충족하는 수가 이렇게 계속 더해져서..
3+4+6+12 = 25가 나온 것 같다
그래서 그냥 SUM은 X야 라고 박아버리면 어떻게될까
if (n % x === 1) {sum = x}
그랫더니 당연히 결과가 다르게 나왔다.

for문 중 x를 선언하고 x를 통해 숫자를 더해가며 반복문을 진행하는데
if문에서 x는 sum이야 라고 선언해버리니까 n > x; 에서 반복문이 걸리면 무조건 빠져나오기 때문에
n보다 하나 작은 숫자로 결과값이 나왔다. 음! 그렇군
먼가 너무 어렵게 생각한것 같아서 chatGPT를 살짝 참고했다.
function solution(n) {
var answer = 0;
sum = 0;
for (let x = 3; n > x; x++ ) {
if(n % x === 1) {
return x;
}
}
N에서 X로 나눴을 때 1이 남는다면, 바로 그냥 반복문 진행안하고 X를 리턴시켜 버리면 된다.

그랬더니 답이 잘 나왔다.
X를 어떻게 답을 빼낼지, SUM에 어찌 넣어야할지 참 고민이었는데 간단한걸 너무 어렵게 생각한 듯 하다.

하지만.. 채점하기 하니까 테스트 3번 4번에서 걸렸다 ㅜ

질문하기 가서 보니까 나처럼 똑같이 3번 4번에서 실패한 사람이 남긴 글이 있었다
역시 나도 x를 3으로 부터 잡고 시작해서 걸렸던 것 같아서 수정했다.
function solution(n) {
var answer = 0;
sum = 0;
for (let x = 0; n > x; x++ ) {
if(n % x === 1) {
return x;
}
}
}
수정했더니 통과했다!
