본문 바로가기

프로그래머스

콜라츠 추측

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