λ¬Έμ μ€λͺ
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 |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- λ¬Έμ μ μ€λͺ κ³Ό κ°μ΅λλ€.
μ μΆλ ₯ μ #2
- 16 → 8 → 4 → 2 → 1μ΄ λμ΄ μ΄ 4λ²λ§μ 1μ΄ λ©λλ€.
μ μΆλ ₯ μ #3
- 626331μ 500λ²μ μλν΄λ 1μ΄ λμ§ λͺ»νλ―λ‘ -1μ 리ν΄ν΄μΌ ν©λλ€.
λ΄κ° μμ±ν μ½λ
class Solution {
public int solution(int num) {
int answer = 0;
long n = num;
while (n != 1) {
if (answer >= 500) {
return -1;
}
if (n % 2 == 0) {
n = n / 2;
} else {
n = n * 3 + 1;
}
answer++;
}
return answer;
}
}
μ½λ μ€λͺ
- long n = num : overflow λ°©μ§λ₯Ό μν΄ long νμ μ μ¬μ©νλ€.
- while (n != 1) { } : whileλ¬Έμ μ¬μ©ν΄μ nμ΄ 1μ΄ μλ κ²½μ°μ κ³μ λ°λ³΅νλ€.
- if (answer >= 500) { return -1; } : answerκ° 500 μ΄μμΈ κ²½μ° -1μ λ°ννλ€.
- if (n % 2 == 0) { n = n / 2 } : nμ΄ μ§μμΌ κ²½μ°μ nμ 2λ‘ λλ κ°μ λ€μ μ μ₯νλ€.
- else { n = n * 3 + 1 } : nμ΄ νμμΌ κ²½μ° nμ 3μ κ³±νκ³ 1μ λν΄μ€λ€.
- answer++ : answer κ°μ 1 μ¦κ°νλ€.
'π§© νλ‘κ·Έλλ¨Έμ€ > π΅ μκ³ λ¦¬μ¦ νμ΄(Java)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘κ·Έλλ¨Έμ€_λλμ΄ λ¨μ΄μ§λ μ«μ λ°°μ΄ (3) | 2024.11.11 |
---|---|
νλ‘κ·Έλλ¨Έμ€_μμΈμμ κΉμλ°© μ°ΎκΈ° (2) | 2024.11.10 |
λ μ μ μ¬μ΄μ ν© (1) | 2024.11.08 |
νμ€λ μ (0) | 2024.11.08 |
μ μ λ΄λ¦Όμ°¨μμΌλ‘ λ°°μΉνκΈ° (0) | 2024.11.07 |