코린이의 소소한 공부노트

[프로그래머스/Lv.1] 콜라츠 추측 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.1] 콜라츠 추측

무지맘 2022. 11. 23. 11:50

1. Input

1) 자연수 num

2) 콜라츠 추측의 계산 규칙

- 1단계: 숫자가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한다.

- 2단계: 1이 될 때까지 1단계를 반복한다.

 

2. Output

1) num을 규칙에 따라 계산했을 때 1이 될 때까지 계산한 횟수

2) 500번을 반복해도 1이 되지 않으면 1 반환

 

3. Constraint

1) num1 이상 8,000,000 미만인 정수

 

4. Example

Input: num=6 -> Output: 8

설명:

6 -> 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

 

5. Code

1) 첫 코드(2022/??)

int count = 0;
long n = num; // 계산과정에서 overflow가 일어나는 것을 방지
if(num == 1) return 0;
else{
    while(count<500){
    if(n%2 == 0) n /= 2;
    else n = n*3 +1;
    count++;
    if(n==1) break;
}
return count>=500 ? -1 : count;