반응형
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
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - 이상한 문자 만들기 java :: 12930 (0) | 2022.02.12 |
---|---|
프로그래머스 - 자연수 뒤집어 배열로 만들기 java :: 12932 (0) | 2022.02.08 |
프로그래머스 - 정수 제곱근 판별 java :: 12934 (0) | 2022.01.11 |
프로그래머스 - 짝수와 홀수 java (0) | 2022.01.09 |
프로그래머스 - 하샤드 수 java (0) | 2022.01.08 |