문제 설명

제한 사항

입출력 예

풀이
class Solution {
public int solution(long num) {
int answer = 0;
while(num != 1) {
if (answer == 500) return -1;
if (num % 2 == 0) num /= 2;
else num = num * 3 + 1;
answer++;
}
return answer;
}
}
후기
매개변수로 받는 값이 int형이지만 곱셈을 하면서 int의 값을 넘어갈 수도 있다. 그 예로 테스트 케이스 3번만 봐도 문제에서는 500을 넘는다고 하지만 결과로는 488이 나온다. 그래서 나는 매개변수 부분을 long으로 바꿨는데 이렇게 메서드를 바꿔도 되는지는 모르겠다... 통과는 됐지만 실전에서는 혹시 모르니 변수를 하나 더 만들어서 형변환 시키자.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 2] 문자열 압축 (0) | 2023.08.02 |
|---|---|
| [프로그래머스][JAVA][Lv. 2] 짝지어 제거하기 (0) | 2023.08.01 |
| [프로그래머스][JAVA][Lv. 1] 평균 구하기 (0) | 2023.08.01 |
| [프로그래머스][JAVA][Lv. 2] 광물 캐기 (0) | 2023.07.31 |
| [프로그래머스][JAVA][Lv. 1] 하샤드 수 (0) | 2023.07.30 |