코테/프로그래머스
콜라츠 추측
밍래그로프
2020. 12. 30. 13:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Solution {
public int solution(int num) {
int answer = 0;
long number = num;
while(number !=1){
if(number%2 ==0){
number /= 2;
}else{
number = number *3 +1;
}
answer++;
if(answer == 500){
answer = -1;
break;
}
}
return (int)answer;
}
}
|
cs |
로직 자체는 매우 쉽다. 반복문이든 조건문이든 어떻게 구현해도 나온다.
문제는 number를 int형으로 하면 중간에 오버플로우가 나버린다는 것이다.
그걸 모른다면 계속 풀지 못했을 듯