Algorithm/Java

프로그래머스 - 콜라츠 추측 java

고고마코드 2022. 2. 8. 23:06
반응형
12943번 문제 - 콜라츠 추측

코딩테스트 연습 - 콜라츠 추측 | 프로그래머스 (programmers.co.kr)

 


풀이

입력된 수 num이 1이 될 때 까지 두 개의 공식(1-1, 1-2)을 반복합니다.

num이 1이 되었다면 반복한 수를 반환합니다.

500번을 반복했는데도 num이 1이 되지 않았다면 -1을 반환합니다.

 

  • 1번 풀이
public int solution(int num) {
	long numL = num;
	for(int cnt=0; cnt<500; cnt++) {
		if(numL == 1) return cnt;
		
		numL = (numL%2 == 0) ? numL/2 : numL*3+1;
	}
	
	return -1;
}

✔️ 예시1. 입력된 수 num = 6

✳️ (6)/2 = 3
✳️ (3)*3+1 = 10
✳️ (10)/2 = 5
✳️ (5)*3+1 = 16
✳️ (16)/2 = 8
✳️ (8)/2 = 4
✳️ (4)/2 = 2
✳️ (2)/2 = 1

 

✔️ 예시2. 입력된 수 num = 16

✳️ (16)/2 = 8
✳️ (8)/2 = 4
✳️ (4)/2 = 2
✳️ (2)/2 = 1

 

✔️ 테스트 케이스 실행 속도: 0ms

반응형