본문 바로가기
코딩 문제/프로그래머스 [ JavaScript ]

[ 프로그래머스 / JavaScript ] 나머지가 1이 되는 수 찾기

by CODESIGN 2022. 10. 7.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 설명


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

 

 

제한사항


  • 3 ≤ n ≤ 1,000,000

 

 

입출력 예


n result
10 3
12 11

 

 

입출력 예 설명


입출력 예 #1

  • 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.

 

입출력 예 #2

  • 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.

 

 

나의 문제 풀이


remain을 0으로 설정해준뒤 1이 될때까지 while loop을 돌렸다.

 

function solution(n) {
    var remain = 0;
    var answer = 0;
    while (remain != 1) {
        answer++;
        remain = n % answer;
    }
    return answer;
}

 

 

 

다른 풀이


내가 쓴 코드와 runtime은 비슷하나 코드가 훨씬 간결하다.

입력 조건에 x=1을 을 추가해줌으로써, whlie룹을 사용하여 x로 나눈 값의 나머지가 1일때 x를 반환 하엿다. 

 

function solution(n, x = 1) {    
    while (x++) {
        if (n % x === 1) {
            return x;
        }
    }    
}

 

 

 

댓글