Algorithms/Programmers
[프로그래머스 Level 1] 나머지가 1이 되는 수 찾기 (자바스크립트)
Millie
2021. 10. 17. 21:30
Description
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
Constraints
3 ≤ n ≤ 1,000,000
My Solution
function solution(n) {
for (let i = 2; i < n; i++) {
if (n % i === 1) return i;
}
}
for문의 초기값을 let i = 2로 지정하였다.
제한 조건에서 n은 3 이상이므로, 나누는 수(i)의 최솟값이 1이 될 순 없기 때문에 1이 아닌 2부터 시작하였다.
Other's Solutions
function solution(n) {
let answer = 0;
for (let i = 0; i < n; i++) {
if (answer > 0) {
break;
}
if (n % i == 1) {
answer = i;
}
}
return answer;
}
while문을 활용하여 for문을 쓸 때보다 간결하게 풀어낼 수도 있다.
function solution(n, x = 1) {
while (x++) {
if (n % x === 1) return x;
}
}
function solution(n) {
let answer = 1;
while (n % answer != 1) answer++;
return answer;
}