[JavaScript] 나머지가 1이 되는 수 찾기

프로그래머스: for & if

문제 설명

  • 자연수 n이 매개변수로 주어집니다. nx로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.

제한 사항

  • 3 ≤ n ≤ 1,000,000

입출력 예

n result
10 3
1211

프로젝트동안 잠시 손 놓았던 프로그래머스를 도전해 보았다. 그동안 UI가 살짝 바뀌었다! 이전보다 훨씬 깔끔해진듯 하다. 예전엔 맨 뒤에 있었던 문제 순으로 난이도가 어려워졌는데 순서가 예전같지가 않다. 필터를 보니 정답률 높은문제부터 보는게 있었다. 정답률이 높다는건 그만큼 쉽다는 뜻이겠지? 하고 필터를 넣어보니 1번문제로 나머지가 1이 되는 수 찾기가 나왔다. 이 정도는 쉽겠지 하고 문제를 확인했다. 문제는 아주 간단해 보였다. %를 사용해서 나머지가 1인거 찾으면 되는거 아닌가? 하지만 오랜만에 프로그래머스를 도전해봐서 그런지 한번에 풀 수 없었다. 처음엔 if를 사용했고 아래와 같은 답이 나왔다.

let answer = 0;
if(n%answer === 1) {
return answer
} else {
answer++
}

answer은 1이 나왔고 종료되었다. 당연히 for 이 필요했다. 하지만 length를 어떻게 설정해야 할지 몰랐다. n을 일단 n-1로 나누면 나머지가 항상 1로 나오니 n보다 작은 length로 설정해 주면 된다고 생각했고 적용해보니 voilà! 성공!

function solution(n) {
    var answer = 0;
for(let i=0; i<n; i++){
    if(n%i === 1){
        return answer
    }else{
        answer++;
    }
}

    return answer
}

프로그래머스 꾸준히 하자! 현재 나의 목표는 level 1 정복이다 😎