Notice
Recent Posts
Recent Comments
Link
Β«   2025/08   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

midnightly

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 콜라츠 μΆ”μΈ‘ (JAVA) λ³Έλ¬Έ

Algorithm/programmers

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 콜라츠 μΆ”μΈ‘ (JAVA)

비버버비 2021. 9. 30. 15:36

πŸ“ƒ 문제

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을 μ™„μ„±ν•΄ μ£Όμ„Έμš”. 단, μž‘μ—…μ„ 500λ²ˆμ„ λ°˜λ³΅ν•΄λ„ 1이 λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ –1을 λ°˜ν™˜ν•΄ μ£Όμ„Έμš”.

 

πŸ“ 풀이

class Solution {
    public int solution(long num) {
        int answer = 0;
        while (num != 1) {
            num = num % 2 == 0 ? num / 2 : num * 3 + 1;
            answer++;
            
            if (answer >= 500) {
                return -1;
            } 
        }
        return answer;
    }
}

 

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

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 콜라츠 μΆ”μΈ‘

1937λ…„ Collatzλž€ μ‚¬λžŒμ— μ˜ν•΄ 제기된 이 좔츑은, μ£Όμ–΄μ§„ μˆ˜κ°€ 1이 λ λ•ŒκΉŒμ§€ λ‹€μŒ μž‘μ—…μ„ λ°˜λ³΅ν•˜λ©΄, λͺ¨λ“  수λ₯Ό 1둜 λ§Œλ“€ 수 μžˆλ‹€λŠ” μΆ”μΈ‘μž…λ‹ˆλ‹€. μž‘μ—…μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 1-1. μž…λ ₯된 μˆ˜κ°€ 짝수라면 2

programmers.co.kr

Comments