본문 바로가기

코테/프로그래머스

콜라츠 추측

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형으로 하면 중간에 오버플로우가 나버린다는 것이다.

그걸 모른다면 계속 풀지 못했을 듯 

'코테 > 프로그래머스' 카테고리의 다른 글

이름에 el이 들어가는 동물 찾기  (0) 2020.12.30
이상한 문자 만들기  (0) 2020.12.30
제일 작은 수  (0) 2020.12.30
문자열 내 마음대로 정렬하기  (0) 2020.12.30
Null 처리하기  (0) 2020.12.29