- 내 풀이
class Solution {
public int solution(int num) {
int answer = 0;
// 숫자가 너무 커지면 int 형에서 오버플로우가 일어난다
long check = num;
for (int i = 0; i < 500; i++) {
if(check == 1){
answer = i;
break;
}
if(check % 2 ==0){
check /= 2;
answer++;
} else if (check != 1 && check % 2 == 1) {
check = (check * 3) + 1;
}
}
if(check > 1){
answer = -1;
}
return answer;
}
}
if의 난발이다....
- 다른 사람 풀이
class Solution {
public int solution(long num) {
int answer = 0;
while(num != 1){
answer++;
if(answer==500)
return -1;
if(num%2==0){
num/=2;
}else{
num=num*3+1;
}
}
return answer;
}
}
'프로그래머스 > [프로그래머스 - JAVA] Lv.1' 카테고리의 다른 글
[프로그래머스 - JAVA] 핸드폰 번호 가리기 (0) | 2023.03.27 |
---|---|
[프로그래머스 - JAVA] 서울에서 김서방 찾기 (0) | 2023.03.27 |
[프로그래머스 - JAVA] 두 정수 사이의 합 (0) | 2023.03.26 |
[프로그래머스 - JAVA] 하샤드 수 (0) | 2023.03.26 |
[프로그래머스 - JAVA] 문자열을 정수로 바꾸기 (0) | 2023.03.26 |
댓글