코딩테스트 풀이/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) num은 1 이상 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;