IT/Algorithm

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

프티 2021. 10. 19. 11:48
반응형

https://programmers.co.kr/learn/courses/30/lessons/87389

 

코딩테스트 연습 - 나머지가 1이 되는 수 찾기

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

programmers.co.kr

나의 풀이

function solution(n) {
    const divideList = [];

    for (let i = n - 1; i > 0; i--) {
        if ((n % i) === 1) {
            divideList.push(i);
        }
    }

    return divideList.pop();
}

약수를 리스트에 저장하고,

반복문이 끝나면 가장 끝에 있는 약수(약수들 중 가장 작은 약수)를 반환한다.

 

그런데 i가 0부터 증가하면서 나머지가 1이 되는 i를 찾는 것이 더 빠르다는 것을 알았다.

function solution(n) {
    for (let i = 0; i < n; i++) {
        if ((n % i) === 1) {
            return i;
        }
    }
}

더 간결한 코드가 되었다!

반응형