개발자가 되

프로그래머스 Lv.1

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

dltjdud 2025. 2. 10. 17:25

문제설명

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

 

제한사항

3 ≤ n ≤ 1,000,000

 

입출력 

nresult

result
10 3
12 11

 

입출력 예 설명

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

 

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

 

풀이

 

JAVA

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=2;i<n;i++){
            if(n%i==1){
                answer = i;
                break;
            }
        }
        return answer;
    }
}

*한줄 코드

import java.util.stream.IntStream;

class Solution {
    public int solution(int n) {
        return IntStream.range(2, n).filter(i -> n % i == 1).findFirst().orElse(0);
    }
}

 

Python

def solution(n):
    answer = 0
    for i in range(2, n):
        if n % i == 1:
            return i
    return answer

*한줄 코드

def solution(n):
    return [x for x in range(1,n+1) if n%x==1][0]

 

JS

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

*다른 코드

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

'프로그래머스 Lv.1' 카테고리의 다른 글

Lv.1 없는 숫자 더하기  (0) 2025.02.11
Lv.1 최소직사각형  (1) 2025.02.10
Lv.1 삼총사  (0) 2025.02.09
Lv.1 콜라 문제  (0) 2025.02.09
Lv.1 옹알이 (2)  (0) 2025.02.09