코딩 테스트

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

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

 

문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/87389

 

풀이보기 ⬇️
더보기
function solution(n) {
    for(let x = 2; x < n; x++) {
        if(n % x === 1) return x;
    }
}

이번 문제는 간단하고 쉬운 걸로 풀어보았다

사실 다른 문제 풀다가 멘탈터져서 이 문제를 푼 것ㅎㅎ; 😅

 

x가 2부터 시작하는 이유는 어쨌든 나머지가 1이 되어야 하기 때문에 나머지가 남지 않는 1은 제외시킨 것이다.

그리고 1이 없다면 굳이 n까지 반복시킬 이유가 없기 때문에 x < n으로 설정했다.

 

그리고 인상깊었던 다른 사람의 풀이는 아래와 같은데,

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

맨날 for 문만 쓰다 보니 while 문의 존재가 희미해져 갔고, 또 조건에 증감 연산자를 쓸 방법은 생각도 못했다.

그리고 미리 증감 연산자 사용을 위해 x의 default 값을 지정해 줬는데 이것 또한 상상도 못 한 ㅎㅎ ; 

새삼 내가 너무 틀에 박혀서 문제를 풀고 있는 것 같은 느낌이 들었다 나도 좀 더 다양하게 생각해봐야겠다고 다짐! 

반응형