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

김영현·2024년 2월 28일
0

프로그래머스

목록 보기
2/29
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
학생의 자세로 살아가는 개발자

0개의 댓글