[프로그래머스 Lv1.] 12943번 콜라츠 추측 (JAVA)

2024. 11. 13. 10:00·Coding Test/프로그래머스[JAVA]

문제 설명

1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.

1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.

예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요.

제한 사항

  • 입력된 수, num은 1 이상 8,000,000 미만인 정수입니다.

입출력 예

n result
6 8
16 4
626331 -1

풀이

class Solution {
    public int solution(int num) {
        int answer = 0;
        int idx = 0;
        
        while(idx < 500) {
            if(num == 1) break;
            if(num % 2 == 0) num /= 2;
            else if(num % 2 == 1) num = num * 3 + 1;

            idx++;
        }
        return idx == 500 ? -1 : idx;
    }
}
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > 프로그래머스[JAVA]' 카테고리의 다른 글

[프로그래머스 Lv1.] 86051번 없는 숫자 더하기 (JAVA)  (0) 2024.11.13
[프로그래머스 Lv1.] 76501번 음양 더하기 (JAVA)  (0) 2024.11.13
[프로그래머스 Lv1.] 12910번 나누어 떨어지는 숫자 배열 (JAVA)  (0) 2024.11.13
[프로그래머스 Lv0.] 250129번 [PCCE 기출문제] 5번 / 산책 (JAVA)  (1) 2024.11.13
[프로그래머스 Lv0.] 340202번 [PCCE 기출문제] 6번 / 물 부족 (JAVA)  (0) 2024.11.13
'Coding Test/프로그래머스[JAVA]' 카테고리의 다른 글
  • [프로그래머스 Lv1.] 86051번 없는 숫자 더하기 (JAVA)
  • [프로그래머스 Lv1.] 76501번 음양 더하기 (JAVA)
  • [프로그래머스 Lv1.] 12910번 나누어 떨어지는 숫자 배열 (JAVA)
  • [프로그래머스 Lv0.] 250129번 [PCCE 기출문제] 5번 / 산책 (JAVA)
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    DB
    프로그래머스
    programmers
    스프링부트
    플러터
    스프링
    자바
    리눅스
    postgresql
    JPA
    spring
    springboot
    Java
    backjoon
    리눅스마스터
    리눅스마스터 1급
    데이터베이스
    Flutter
    시큐리티
    CS지식
    Linux
    데이터
    Oracle
    스프링 부트 쇼핑몰 프로젝트 with JPA
    CS
    pcce 기출문제
    python
    Spring Security
    백준
    baekjoon
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[프로그래머스 Lv1.] 12943번 콜라츠 추측 (JAVA)
상단으로

티스토리툴바