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

이한솔·2023년 9월 25일
0
post-thumbnail

✨️문제 설명

: 자연수 n이 매개변수로 주어질 때, n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return하는 solution 함수 완성하기. (답은 항상 존재한다.)

-> 자세한 내용 보러가기

🎲자바 풀이

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

풀이 설명

: 1은 모든 수를 나눌 수 있으므로, 2부터 n보다 작은 수까지 반복문을 돌려서 (n-1)을 나누었을 때 나머지가 0인 값을 찾는다.

다른 사람 풀이

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);
    }
}

: IntStream.range(2,n) : 2부터 n-1까지의 정수로 이루어진 스트림을 생성
(range 매서드의 첫번째 인수는 시작값, 두번째 인수는 끝값)
: .filter(i -> n % i == 1) : 스트림에서 특정 조건을 만족하는 요소만을 필터링
: findFirst() : 필터링된 결과 중 첫번째 요소 반환
: orElse(0) : findFirst의 결과가 없는 경우 (= 조건을 만족하는 정수 i가 없는 경우) 기본값으로 0을 반환

profile
개인 공부용

0개의 댓글