• Home

My Codegate

  • Home

프로그래머스 콜라츠 추측 자바 문제풀이

2023/12/06 Posted by Codegate Java No Comments

문제 링크

문제 내용은 값을 받아서 받은 값이 짝수면 2로 나누고, 홀수면 3을 곱하고 1을 더해주되 이 과정에서 1이 나오면 계산한 횟수를 반환하고, 500번이 넘어도 1을 만들지 못하면 -1을 반환해주면 된다

주의할 점은 1이 들어오는 경우에는 콜라츠 추측을 돌려서 1에서 1을 만들어 반환할 것이 아니라, 돌릴 것이 없으므로 0을 반환해주면 된다

public class Collatz {
    public static int solution(int num) {
        int answer = 0;

        if(num == 1) {
            return answer;
        }

        for(int i = 0; i<500; i++) {
            if(num % 2 == 0) {
                num = num / 2;
                answer++;
            } else if(num % 2 != 0) {
                num = num * 3 + 1;
                answer++;
            }
            if(num == 1) {
                return answer;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        System.out.println(solution(1));
    }
}

문제를 풀어보자면 값을 받아온 뒤 1이면 그냥 그대로 끝내고, 아니면 반복문을 500번 돌려서 짝수면 2를 나누고 홀수면 3을 곱한 뒤 1을 더해주면서 횟수를 계산해주고 계산 과정에서 1을 구했다면 횟수를 리턴해주고 500번을 해도 1이 나오지 않았다면 -1을 리턴해주면 끝이다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next