본문 바로가기

Programmers

[JAVA] Lv.1 콜라츠 추측

https://school.programmers.co.kr/learn/courses/30/lessons/12943

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이

1. 주어진 수가 짝수면 2로 나누고 홀수면 3을 곱한 후 1을 더한다

 

500번까지 곱셈 연산을 하면 int의 범위를 넘어갈 수 있기 때문에 long으로 변환한 후 연산을 해야 한다

class Solution {
    public int solution(int n) {
    
        long num = n;
        for (int i=0; i<500; i++) {
            if (num==1) return i;
            num = (num%2==0) ? num/2 : num*3+1;
        }
        return -1;
    }
}