프로그래머스Lv.1 : 나머지가 1이 되는 수 찾기
■ 문제 설명
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
■ 제한 조건
✔ 3 ≤ n ≤ 1,000,000
■ 입출력 예
n | answer |
---|---|
10 | 3 |
12 | 11 |
■ 입출력 예
1. 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
2. 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
■ 내멋대로 풀어헤치기😜
최소수기 때문에 n에 그냥 x2를 해줘서 리미트값을 정해주고 나누는 수를 감소시킵니다.
조건문을 걸어서 나머지가 1인 수들을 배열안에 넣고, 최소값을 찾는 min을 이용해서 나머지가 1인 수들 중 최소값을 반환합니다.
function solution(n) {
let arr = [];
for(i=n*2; i>=1; i--){
if(n%i == 1){
arr.push(i)
}
}
const x = Math.min.apply(null,arr)
return x
}
■ 다른사람 입맛도 맛보기 😋
while을 썼는데.... 음... 네 이해는 되는데 말로 설명이 안되네요...죄송
function solution(n, x = 1) {
while (x++) {
if (n % x === 1) {
return x;
}
}
}
📌 나혼자 공부...
Math.min.apply(null,arr)
math.min()은 괄호안에 숫자들을 입력해주어하는데여. 우리는 배열안에서 뽑을 거기 때문에 이 메서드쓰면 안되고 배열안에서 뽑는건 저렇게 aplly()를 써준다고하네요.
🙇♀️ 틀린 점에 대한 지적은 언제나 환영합니다 🙇♂️
'프로그래머스' 카테고리의 다른 글
프로그래머스 Lv.1 : 10. 제일 작은 수 제거하기 (2) | 2022.11.06 |
---|---|
프로그래머스 Lv.1 : 09. 짝수와 홀수 (2) | 2022.11.06 |
프로그래머스 Lv.1 : 07. x만큼 간격이 있는 n개의 숫자 (1) | 2022.11.02 |
프로그래머스 Lv.1 : 06. 핸드폰 번호 가리기 (1) | 2022.11.01 |
프로그래머스 Lv.1 : 05. 서울에서 김서방 찾기 (0) | 2022.11.01 |
댓글