Coding test

[프로그래머스] 나머지가 1이 되는 수 찾기 (Level 1)

Jiwoo 2022. 4. 20. 15:29

문제

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

  • 제한사항
    3 ≤ n ≤ 1,000,000
     

나의 풀이

function solution(n){
   for(let x = 2; x < n; x++) {
        if (n % x === 1) return x;
    }
}

 
for문 안에 return이 있어도 전체 함수의 반환값이 된다.
 

  • 정확도 테스트 결과

    테스트 1에서 시간이 많이 걸렸지만 통과
     

다른 풀이

function solution(n, x = 1) {    
    while (x++) {
        if (n % x === 1) {
            return x;
        }
    }    
}

 
특별히 다른 방법은 아니지만, while문으로도 대체할 수 있음을 학습할 수 있는 풀이.
 

  • 정확도 테스트 결과