728x90
프로그래머스 : 나머지가 1이 되는 수 찾기
주어진 자연수를 나눌 시 나머지가 1이 되는 최소값을 구하는 문제입니다.
문제 설명
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수
있습니다.
제한사항
3 ≤ n ≤ 1,000,000
입출력 예
n | 결과 |
---|---|
10 | 3 |
12 | 11 |
1. 해설
소스보기
function solution(n) {
for(x=0; x<=n; x++){
if(n%x == 1){
return x;
}
}
}
반복문으로 n을 x로 나누고 조건문을 사용해 n%x == 1이 되는 값을 return으로 반환하면 간단히 끝납니다.
return은 반환과 동시에 함수의 종료도 의미하므로 반복문이 지속되지 않고 최소값을 찾을 때 종료됩니다.
2. 다른 해설
소스보기
function solution(n, x = 1) {
while (x++) {
if (n % x === 1) {
return x;
}
}
}
반복문은 여러가지 있으면 그중 while문은 조건을 바로 써줄 수 있습니다. 하지만 for문이나 forEach문과 다르게 끝을 지정해주지 않으면 계속 연산하게 되므로 반드시 끝을 지정해줘야 합니다. 여기서 return에서 함수가 종료되어 끝이 지정되어있습니다.
댓글