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

2025. 7. 9. 19:52·CodingTest/Programmers

사진을 클릭하면 해당 문제로 이동

💡풀이

class Solution {
    public int solution(int num) {
        int count = 0;
        long numLong = num;

        while (numLong != 1) {
            if (count >= 500) return -1;

            if (numLong % 2 == 0) {
                numLong /= 2;
            } else {
                numLong = numLong * 3 + 1;
            }
            count++;
        }

        return count;
    }
}

💡풀이 2

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

📖새로 배운 부분

한두개의 케이스만 실패할 경우 int -> long 범위 변환을 항상 생각해보자

 

GitHub - okjunghyeon/Programmers_CodingTest: 프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다.

프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다. Contribute to okjunghyeon/Programmers_CodingTest development by creating an account on GitHub.

github.com

 

'CodingTest > Programmers' 카테고리의 다른 글

[프로그래머스, Java] 가운데 글자 가져오기  (0) 2025.07.09
[프로그래머스, Java] 핸드폰 번호 가리기  (0) 2025.07.09
[프로그래머스, Java] 서울에서 김서방 찾기  (0) 2025.07.09
[프로그래머스, Java] 나누어 떨어지는 숫자 배열  (0) 2025.07.09
[프로그래머스, Java] 없는 숫자 더하기  (0) 2025.07.09
'CodingTest/Programmers' 카테고리의 다른 글
  • [프로그래머스, Java] 가운데 글자 가져오기
  • [프로그래머스, Java] 핸드폰 번호 가리기
  • [프로그래머스, Java] 서울에서 김서방 찾기
  • [프로그래머스, Java] 나누어 떨어지는 숫자 배열
devoks
devoks
꾸준히 작성해보자!
  • devoks
    ok's 개발 블로그
    devoks
  • 전체
    오늘
    어제
    • 분류 전체보기 (110) N
      • Backend (15)
        • SpringBoot (0)
        • Java (15)
      • Cs (17) N
      • Infra (0)
        • AWS (0)
        • Docker (0)
      • CodingTest (78)
        • Programmers (78)
  • 링크

    • My GitHub
  • 인기 글

  • 태그

    switch
    programmers
    json
    BufferedWriter
    BufferedReader
    effectivejava
    CS
    codingtest
    StringTokenizer
    java
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devoks
[프로그래머스, Java] 콜라츠 추측
상단으로

티스토리툴바