Lv. 1 - 나머지가 1이 되는 수 찾기 풀이과정
문제 설명
자연수 n
이 매개변수로 주어집니다.
n
을 x
로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요.
답이 항상 존재함은 증명될 수 있습니다.
제한사항
- 3 ≤
n
≤ 1,000,000
입출력 예
N | result |
---|---|
10 | 3 |
12 | 11 |
입출력 예 설명
3-1) 입출력 예 설명 #1
10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
3-2) 입출력 예 설명 #2
12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
프로그래머스에서 제공한 코드
처음 프로그래머스에서 작성된 코드는 아래와 같다.
function solution(n) {
var answer = 0;
return answer;
}
문제 풀이
const solution = n => {
for(let i = 0; i <= n; ㅑ ++) {
if(n % i === 1) return i;
}
}
함수 선언
- 화살표 함수를 사용하여
n
매개변수를 받는다.
풀이
-
x
는 n을 나눠 나머지가 1이 되어야 하기에, for 반복문을 실행하고, if문으로n % i === 1
되는 값을 return 하여 함수를 종료한다.
결과 반환
- 매개변수
n
에 10을 대입하면 10 % i(3) === 1; // 3 - 매개변수
n
에 12을 대입하면 12 & i(11) === 1; // 11
실행
-
console.log(solution(10))
실행하면 3가 출력된다. -
console.log(solution(12))
실행하면 11이 출력된다.
다른 사람의 풀이 참고
댓글에 가장 이해하기 쉬운 코드라고 적혀있어서 흡족했으나, 아래의 댓글에 “이건 레벨0짜리임” 이라고해서 조금 섭섭하지만 만족!
// [2명] for 반복문을 사용한 풀이방식
const solution = function(n) {
for (let i=0; i<n; i++){
if (n%i == 1){
return i
}
}
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges