💡풀이
class Solution {
public int solution(int num) {
int count = 0;
long numLong = num;
while (numLong != 1) {
if (count >= 500) return -1;
if (numLong % 2 == 0) {
numLong /= 2;
} else {
numLong = numLong * 3 + 1;
}
count++;
}
return count;
}
}
💡풀이 2
class Solution {
public int solution(int num) {
long n = num;
for (int count = 0; count < 500; count++) {
if (n == 1) return count;
n = (n % 2 == 0) ? n / 2 : n * 3 + 1;
}
return -1;
}
}
📖새로 배운 부분
한두개의 케이스만 실패할 경우 int -> long 범위 변환을 항상 생각해보자
GitHub - okjunghyeon/Programmers_CodingTest: 프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다.
프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다. Contribute to okjunghyeon/Programmers_CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스, Java] 가운데 글자 가져오기 (0) | 2025.07.09 |
---|---|
[프로그래머스, Java] 핸드폰 번호 가리기 (0) | 2025.07.09 |
[프로그래머스, Java] 서울에서 김서방 찾기 (0) | 2025.07.09 |
[프로그래머스, Java] 나누어 떨어지는 숫자 배열 (0) | 2025.07.09 |
[프로그래머스, Java] 없는 숫자 더하기 (0) | 2025.07.09 |