Dragonball Online Goku Hand
본문 바로가기
알고리즘 도장깨기

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

by 별의 코비 2022. 10. 30.
728x90

🔥 Programmers Lv.1 : 나머지가 1이 되는 수 찾기


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

📎 조건 :
∙ 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으로 최소값을 구해주었습니다.

댓글