728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12943?language=java
문제는 쉬운데 조심할 점!
num이 int로 주어지는데 계산을 반복하다보면 int 범위를 넘어서서 int 오버플로우가 발생하게 된다
따라서 int로 받은 num을 long으로 바꿔서 처리해줘야 최대 500번까지의 계산을 수행할 수 있다!
자바 코드)
class Solution {
public int solution(int num) {
long number = (long)num;
int answer = 0;
if(num==1) {
return 0;
}
while(number!=1) {
if(answer >= 500) {
return -1;
}
answer++;
if(number%2==0) {
number /= 2;
} else {
number = number*3 + 1;
}
}
return answer;
}
}
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[2021 카카오 채용연계형 인턴십] 거리두기 확인하기 - JAVA (0) | 2022.09.02 |
---|---|
[SQL] JOIN 문제 (0) | 2022.09.01 |
[스택/큐] 같은 숫자는 싫어 - JAVA (0) | 2022.08.19 |
외벽점검 - JAVA (0) | 2022.08.17 |
합승 택시 요금 - JAVA (0) | 2022.08.01 |
댓글