능히 할수있다!

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

STUDY/Algorithm

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

능히버섯와나 2023. 6. 7.

🔬 문제 설명

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

✋ 제한사항

3 ≤ n ≤ 1,000,000

📌 입출력 예

 n  result
 10  3
 12  11

 

 

 

 

✍️ 풀이

function solution(n) {
  var x = 1;
  while (x++) {
    if (n % x === 1) return x;
  }
}
While이 정적인 조건문 뿐 만 아니라 변수 값을 변경하거나 증감하는 표현식을 사용할 수 있다는 점을 이용한 풀이로,
x값을 1씩 증가시키며 루프를 실행하고 if문을 통해 n을 x로 나눈 나머지가 1이 되는 최소값을 찾는다.

 

🔍 또 다른 풀이방법

/* for를 활용한 방법 */
const solution = function (n) {
  for (let i = 0; i < n; i++) {
    if (n % i == 1) {
      return i;
    }
  }
};
/* 재귀 함수를 이용한 방법 */
function solution(n, x = 0) {
  // 조건이 거짓일 경우 x값을 1증가시켜 재귀호출
  return n % x === 1 ? x : solution(n, x + 1); 
}

 

 

 

 

 

출처: https://programmers.co.kr/ 

 

Comments