728x90
class Solution {
public int solution(int num) {
int answer = 0;
int cnt = 0;
while(true)
{
if(cnt == 500)
{
answer = -1;
break;
}
if(num ==1)
{
answer = cnt;
break;
}
if(num %2 ==0)
{
num = num/2;
}
else if(num %2 ==1)
{
num = num*3 +1;
}
cnt++;
}
return answer;
}
}
베스트코드 프로그래머스 출처
class Collatz {
public int collatz(int num) {
long n = (long)num;
for(int i =0; i<500; i++){
if(n==1) return i;
n = (n%2==0) ? n/2 : n*3+1;
}
return -1;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
Collatz c = new Collatz();
int ex = 6;
System.out.println(c.collatz(ex));
}
}
3항연산자와 함수로 깔끔하게 짬
728x90
'프로그래머스' 카테고리의 다른 글
다리를지나는트럭 (0) | 2023.01.10 |
---|---|
부족한 금액 계산하기 (0) | 2023.01.10 |
숫자 문자열과 영단어 (0) | 2022.12.26 |
k번째수 (0) | 2022.12.26 |
행렬의덧셈 (0) | 2022.12.26 |