
*문제 풀이
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;
}
}
int x = 1;이 불가능한 이유?
문제 조건이 n을 x로 나눈 나머지가 1이 되는 가장 작은 x 찾기임
여기에서 n%x == 1인 x를 찾는 것이 목표인데, 만약 x가 1부터 시작한다면 모든 n에 대해 n%1은 항상 0이 되기 때문에 조건을 만족하지 않음. 그러므로 2부터 시작.
break?
불필요한 반복을 피하기 위해 꼭 필요.
break를 사용하지 않으면 반복문이 끝까지 실행됨. 이렇게 되면 조건을 만족하는 가장 작은 x가 아니라, 조건을 만족하는 마지막 x가 저장되므로 답이 틀리게 됨.
'코테 > 프로그래머스 JAVA Lv.1' 카테고리의 다른 글
| [프로그래머스/java/Lv.1] x만큼 간격이 있는 n개의 숫자 (0) | 2024.10.15 |
|---|---|
| [프로그래머스/java/Lv.1] 자릿수 더하기 (0) | 2024.10.12 |
| [프로그래머스/java/Lv.1] 평균 구하기 (0) | 2024.10.01 |
| [프로그래머스/java/Lv.1] 문자열을 정수로 바꾸기 (0) | 2024.09.29 |
| [프로그래머스/java/Lv.1] 약수의 합 (0) | 2024.09.28 |