Programmers | #Lv1 "나머지가 1이 되는 수 찾기 "

블로그 이사 완료·2022년 9월 18일
0
post-thumbnail

문제 설명

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


제한 조건

3 ≤ n ≤ 1,000,000


입/출력 예

nresult
103
1211

입/출력 설명

입출력 예 #1
10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.

입출력 예 #2
12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.


나의 풀이

function solution(n) {
    var answer = 1;
    while (n % answer != 1) answer++;
    return answer;
}

다른 풀이

function solution(n, x = 1) {    
    while (x++) {
        if (n % x === 1) {
            return x;
        }
    }    
}
const solution = function(n) {
    for (let i=0; i<n; i++){
        if (n%i == 1){
            return i
        }
    }
}

Review

입력 값의 나머지가 1이 되는 수를 반환하는 문제다.

일단 기본 값 answer에 1을 지정했다.

while문을 입력 값을 answer로 나눈 값이 1이 될 때까지 실행시킨다.
while문이 실행되는 동안 answer를 1씩 증가 시킨다.

결국 입력 값을 answer로 나눈 값이 1이 되면 while문이 종료되는데, 이 때 까지 증가 되었던 answer값을 반환했다.

다른 사람들의 풀이를 보면 간단하게 for문을 사용해도 됐을 듯 싶다.


profile
https://kyledev.tistory.com/

0개의 댓글