JAVAIARY

프로그래머스) 콜라츠 추측 본문

examplePractice

프로그래머스) 콜라츠 추측

shiherlis 2023. 2. 24. 12:11

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

 

프로그래머스

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

programmers.co.kr

public class CollatzConjecture {
	public int solution(long num) {
		int answer = 0;
		if (num != 1) {
			for (int i = 1; i <= 500; i++) {
				if (num % 2 == 0) {
					num /= 2;
				} else {
					num = num * 3 + 1;
				}
				if (num == 1) {
					answer = i;
					break;
				}
			}
			// 반복문 종료시점에서 answer 값이 0일 경우 -1 리턴
			if (answer == 0) {
				answer = -1;
			}
		}
		return answer;
	}
}
  • 로직 자체는 어려운게 없었음
  • int 형의 범위 이탈 (Overflow, 오버플로우) 를 찾아내는 것이 중요했던 문제 같음
  • 디버깅 열심히 돌리자..!