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

Janet·2023년 3월 3일
0

Algorithm

목록 보기
49/314

문제 설명

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


제한사항

  • 3 ≤ n ≤ 1,000,000

입출력 예

nresult
103
1211

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

문제풀이

💡 문제풀이 과정

  • n과 x는 자연수이며, n % x === 1 이 되어야 하므로 x는 최소 2에서 부터 해당한다.
  • 나는 for() 반복문과 조건문을 통해 리턴했다. 다른 답안을 보니, while문을 쓴 경우도 있었다.

❓ 자연수란?

  • 자연수란 양의 정수로 1부터 시작하며, 사물의 개수를 세거나 순서를 매길 떼 사용하는 가장 자연스러운 수이다.
    • 그렇다면 0은 자연수인가? 0을 포함하지 않은 자연수는 양의 정수 라고 하며, 0을 포함한 자연수는 음의 정수 혹은 whole number(정수, 범자연수) 라고 한다. 0을 자연수에 포함하는 가에 대해선 수학자들의 의견에 따라 의견이 갈리는 부분이라고 한다.

✅ 답안 #1

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

✅ 답안 #2

function solution(n) {
  let answer = [];
  for (let x = 2; x < n; x++) {
    if (n % x === 1) answer.push(x);
  }
  return answer[0];
}

✅ 답안 #3

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

0개의 댓글