나머지가 1이 되는 수 찾기 - while과 if의 다양한 활용

조해빈·2023년 1월 2일
0

프로그래머스

목록 보기
8/15

나머지가 1이 되는 수 찾기

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

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

입출력 예
n result
10 3
12 11

풀이 과정

너무 쉬워서 내가 뭔가 놓치고 있는 거라고 생각했다.

function solution(n) {
    let i=2; 
    do {
        if (n%i===1) {
            return i;
            break;
        } else {
            i++;
        }
    } while (i<n);
}


다행히 통과했다.
다른 분들의 답을 보며 더 간단하게 적을 수 있는 법을 모색했다.

1

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


while문을 if문 밖에 감싸는 용도로 썼다는 점과, 삼항연산자 및 재귀를 통해 한 줄로 간단히 끝낸 게 멋졌다...
while과 if를 어떻게 사용하는 지가 생각보다 다양한 것이 재밌다.

profile
JS, CSS, HTML, React etc

0개의 댓글