728x90
🔥 Programmers Lv.1 : 나머지가 1이 되는 수 찾기
🔍 문제 : " 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. "
📎 조건 :
∙ 3 ≤ n ≤ 1,000,000
∙ 3 ≤ n ≤ 1,000,000
👉🏻 My answer
function solution(n) {
for(let x = 1; x<=n; x++){
if(n % x == 1){
return x;
};
};
};
: n을 x로 나눈값이 1이여야 하며 그 중 가장 작은 수이기 때문에 x가 1부터 n까지 순차적으로 반복할 때 나머지가 1이 처음으로 되면 바로 그 값 최소값이며 그 값을
바로 출력하기 위해 return x를 써주었습니다.
👉🏻 Another ways
function solution(n, x = 1) {
while (x++) {
if (n % x === 1) {
return x;
}
}
}
: while 문을 이용하여 제가 푼 방법과 똑같은 값이 나오도록 식을 써주었습니다.
function solution(n) {
let answer = [];
for (let i = 1; i<=n; i++) {
if (n % i === 1) {
answer.push(i);
}
}
return Math.min(...answer);
}
: 나머지가 1이 되는 값을 push를 통해 전부 배열 안에 넣어주었으며 펼침연산자 (...answer)을 통하여 answer의 배열값을 다 가져와 그 중 Math.min으로 최소값을 구해주었습니다.
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "자연수 뒤집어 배열로 만들기" (3) | 2022.11.01 |
---|---|
프로그래머스 Lv.1 "자릿수 더하기" (2) | 2022.11.01 |
프로그래머스 Lv.1 "약수의 합" (2) | 2022.10.30 |
프로그래머스 Lv.1 "평균 구하기" (2) | 2022.10.30 |
프로그래머스 Lv.1 "짝수와 홀수" (4) | 2022.10.28 |
댓글