본문 바로가기
코딩테스트/프로그래머스

[연습문제] 콜라츠 추측

by 의정부핵꿀밤 2022. 8. 21.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12943?language=java 

 

프로그래머스

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

programmers.co.kr


문제는 쉬운데 조심할 점!

num이 int로 주어지는데 계산을 반복하다보면 int 범위를 넘어서서 int 오버플로우가 발생하게 된다

따라서 int로 받은 num을 long으로 바꿔서 처리해줘야 최대 500번까지의 계산을 수행할 수 있다!

 

 

자바 코드)

class Solution {
    public int solution(int num) {
        long number = (long)num;
        int answer = 0;
        if(num==1) {
            return 0;
        }
        while(number!=1) {
            if(answer >= 500) {
                return -1;
            }
            answer++;
            if(number%2==0) {
                number /= 2;
            } else {
                number = number*3 + 1;
            }
        }
        return answer;
    }
}
728x90

댓글