본문 바로가기

프로그래머스(Java)/Level 1

[프로그래머스] 콜라츠 추측

728x90

힌트

  • 무한 루프와 조건문: 무한 루프를 사용하고 조건문을 통해 특정 상황에서 루프를 종료하는 구조입니다.
  • 작업 횟수: 각 작업마다 result를 증가시켜 작업 횟수를 기록합니다.
  • 짝수와 홀수 처리: num이 짝수인지 홀수인지에 따라 다른 처리를 합니다.
  • 최종 반환 값: 작업이 성공적으로 끝나 num이 1이 되면 result를 반환하고, 그렇지 않으면 -1을 반환하여 작업이 실패했음을 나타냅니다.

 

 

 


정답은 더보기 클릭

더보기
class Solution {
    public int solution(long num) {
        int result = 0; // 작업 횟수를 저장할 변수
        
        while (true) {
            // num이 1이 되거나 작업 횟수가 500 이상이 되면 루프 종료
            if (num == 1 || result >= 500) break;
            
            result++; // 작업 횟수 증가
            
            // num이 짝수이면 2로 나누고, 홀수이면 3을 곱하고 1을 더함
            if (num % 2 == 0) num = num / 2;
            else num = num * 3 + 1;
        }
        
        // num이 1이 된 경우 작업 횟수를 반환, 그렇지 않으면 -1 반환
        return (num == 1) ? result : -1;
    }
}
728x90