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

morecodeplease·2024년 2월 28일
0

프로그래머스

목록 보기
2/23
post-thumbnail

🌭 문제 설명

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


🍗 제한 사항

  • 3 ≤ n ≤ 1,000,000

🎁 입출력 예시

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

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


😎 나의 풀이

function solution(n) {
  for(let i = 2; i < n; i++) {
   if(n % i === 1) return i;
  }
}

console.log(solution(10)) // 출력 : 3
console.log(solution(12)) // 출력 : 11

i2부터 시작해서 나머지가 1이 나오는 수가 나오면 그 자연수를 return해서 함수를 종료한다.


🧵 다른 풀이

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

while문을 써서 x++증감연산자로 조건을 설정하고 n을 증가된 x로 나눈 나머지가 1이면 x를 return해서 함수를 종료시킨다.

항상 for문만 주로 써왔는데 while문 풀이도 보니 신박하기도 하고 쓰려고 노력해봐야겠다.

profile
Everyday's a lesson

0개의 댓글