0405 나머지가 1이 되는 수 찾기

xodus·2022년 4월 9일
0

codingTest

목록 보기
7/24

문제 설명

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

제한 조건

  • 3 ≤ n ≤ 1,000,000

입출력 예

nresult
103
1211

입출력 예 설명

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

기본코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        return answer;
    }
}

정답코드

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

문제풀이

n을 나눈 나머지가 1이어야 하니까 for문을 돌려서 1부터 n까지 돌린후에 if문을 활용해서 n%x==1 일 경우에 answer에 x를 더하는 방법으로 작성했다. break는 조건문을 만족하자마자 멈춰주는 용도이고 가장 작은 자연수를 뽑아내야 하기 때문에 3에서 멈춰주었다.
break를 걸어준 이유를 몰라서 자문을 구해서 알게되었다..

2개의 댓글

comment-user-thumbnail
2022년 4월 10일

이해하기 위해 더 찾아본 모습이 보기 좋네요!

답글 달기
comment-user-thumbnail
2022년 4월 10일

자문을 구하고 자신의 것으로 바꾸면 good~

답글 달기