class Solution {
public int solution(long num) {
int answer = 0;
if(num == 1){
answer = 0;
}
while(num != 1){
if(num%2 == 0){
num = num/2;
answer++;
}else{
num = num*3+1;
answer++;
}
if(answer==500){
answer = -1;
break;
}
}
return answer;
}
}
테스트 3에서 오류가 났다면 num*3+1 반복하는 과정에서 int형 범위를 초과할 수 있다는 것을 생각하자.
int형보다 long 타입을 선언하여 오버플로우를 막아주자.
'공부기록 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 하샤드 수 (0) | 2023.08.31 |
---|---|
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2023.08.30 |
[프로그래머스] 정수 내림차순 배치하기 (0) | 2023.08.29 |
[프로그래머스] 정수 제곱근 (0) | 2023.08.27 |
[프로그래머스] 음양 더하기 (0) | 2023.08.25 |