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

Study with cocochichi·2023년 10월 27일
0

프로그래머스 Lv.1

목록 보기
2/21
post-thumbnail

문제 설명

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

제한사항

3 ≤ n ≤ 1,000,000

입출력 예

nresult
103
1211

입출력 예

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

풀이코드

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

다른 풀이코드

class Solution {
    public int solution(int n) {
        int answer = 1;

        while(true) {
            if (n%answer==1) break;
            answer++;
        }

        return answer;
    }
}

✏️ 리뷰

저렇게 간단하게 풀 수 있는데 왜 나는 복잡하게 생각해서 풀지도 못했지😢? 부끄럽다,, 저거 조차 간단하게 생각하지 못했다 나는 왜 굳이 비교해서 작은 수를 구하려고 했냐고 그냥 for문에서 작은 수 부터 시작하면 1로 나머지가 나오는 애로 break하면 되는데 말이야,,, 좀 더 잘 생각해봐야하는거 같다.

while문으로 할 수 있다!!

0개의 댓글