- n이 1이면 즉시 종료하게 만든다.
- n이 1이 될때까지 짝수면 2를 나누고 홀수면 3을 곱하고 1을 더한다.
- 한 번 반복될 때마다 answer가 1이 증가하는데 answer가 500이 되면 즉시 종료하고 -1을 반환한다.
/*
* 프로그래머스 Lv1 - 콜라츠 추측
* 문제링크:https://programmers.co.kr/learn/courses/30/lessons/12943
* 정확성 테스트 케이스 16개 중 16개 성공
* 총점 100.0
*/
class Solution {
public int solution(int n) {
int answer = 0;
do {
if(n==1)
break;
++answer;
if(n%2 == 0){
n = n/2;
continue;
}
else if(n%2 == 1) {
n = n*3+1;
continue;
}
if(answer == 500) {
answer = -1;
break;
}
}while(n != 1);
return answer;
}
}
문제만 잘 읽으면 누구나 쉽게 풀 수 있는 문제인 것 같다.