π‘ λ¬Έμ μ€λͺ .
• μ΄λ ν μ Nμ΄ 1μ΄ λ λκΉμ§ λ€μμ λ κ³Όμ μ€ νλλ₯Ό λ°λ³΅μ μΌλ‘ μ ννμ¬ μννλ €κ³ ν©λλ€. λ¨, λ λ²μ§Έ μ°μ°μ Nμ΄ Kλ‘ λλμ΄ λ¨μ΄μ§ λλ§ μ νν μ μμ΅λλ€.
- Nμμ 1μ λΊλλ€.
- Nμ Kλ‘ λλλλ€.
• μλ₯Ό λ€μ΄ Nμ΄ 17, Kκ° 4λΌκ³ κ°μ ν©μλ€. μ΄λ 1λ²μ κ³Όμ μ ν λ² μννλ©΄ Nμ 16μ΄ λ©λλ€. μ΄νμ 2λ²μ κ³Όμ μ λ λ² μννλ©΄ Nμ 1μ΄ λ©λλ€. κ²°κ³Όμ μΌλ‘ μ΄ κ²½μ° μ 체 κ³Όμ μ μ€νν νμλ 3μ΄ λ©λ λ€. μ΄λ Nμ 1λ‘ λ§λλ μ΅μ νμμ λλ€.
• Nκ³Ό Kκ° μ£Όμ΄μ§ λ Nμ΄ 1μ΄ λ λκΉμ§ 1λ² νΉμ 2λ²μ κ³Όμ μ μνν΄μΌ νλ μ΅μ νμλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμΈμ.
π‘ λ¬Έμ 쑰건.
λμ΄λ π’βͺοΈβͺοΈ | νμ΄ μκ° 15λΆ | μκ°μ ν 2μ΄ | λ©λͺ¨λ¦¬ μ ν 128MB
μ λ ₯ 쑰건
- 첫째 μ€μ N(1 <= N <= 100,000)κ³Ό K(2 <= K <= 100,000)κ° κ³΅λ°±μ κΈ°μ€μΌλ‘ νμ¬ κ°κ° μμ°μλ‘ μ£Όμ΄μ§λλ€.
μΆλ ₯ 쑰건
- 첫째 μ€μ Nμ΄ 1μ΄ λ λκΉμ§ 1λ² νΉμ 2λ²μ κ³Όμ μ μνν΄μΌ νλ νμμ μ΅μκ°μ μΆλ ₯ν©λλ€.
μ λ ₯ μμ
25 5
μΆλ ₯ μμ
2
π‘ λ¬Έμ ν΄κ²° μμ΄λμ΄.
- Nμμ 1μ λΉΌλ μ°μ°μ νμ μ ν κ°λ₯νλ―λ‘, λΊμ μ°μ°μ μ΅μννκΈ° μν΄ Nμ Kλ‘ λλμ΄ λ¨μ΄μ§κ²λ λ§λ λ€.
- Nμ Kλ‘ λλμ΄ λ¨μ΄μ§κ²λ λ§λ ν, λλκΈ° μ°μ°μ ν λ² μννλ©΄ λΊμ μ°μ°λ³΄λ€ λΉ λ₯΄κ² μλ₯Ό μ€μΌ μ μλ€.
- λ°λ³΅μ μΌλ‘ μ λ κ³Όμ μ μννλ©΄μ Nμ μ΅μ’ μ μΌλ‘ 1λ‘ λ§λ€μ΄μΌ νλ€.
β λ΄κ° μ μ λ΅.
n, k = map(int, input().split())
cnt = 0
while (n != 1):
if n % k == 0:
n = n / k
cnt += 1
else:
n = n - 1
cnt += 1
print(cnt)
βοΈ μ²μμ while 쑰건μ ν·κ°λ €μ 무ν 루ν λλ €λ²λ Έλ€. (μκΎΈ λ©μΆ 쑰건μ λ£μ.) while '쑰건'μ΄λ©΄ λ°λ³΅νλ€.
βοΈ map(int, input().split())
input() : μ¬μ©μλ‘λΆν° ν€λ³΄λλ‘ μ λ ₯μ λ°λ ν¨μ
split() : μ
λ ₯λ°μ κ°μ 곡백μ κΈ°μ€μΌλ‘ λλμ΄ λ¦¬μ€νΈλ‘ λ°ν
map(int, ...) : λλ κ°κ°μ κ°μ λν΄ μ μ λ³ν
βοΈ μ λ ₯ κ°μ΄ ν° μμΌ λλ₯Ό κ³ λ €νμ§ λͺ»νλ€.
β μ΄κ²μ΄ μ½λ©ν μ€νΈλ€ μ λ΅.
# N, Kμ 곡백μ κΈ°μ€μΌλ‘ ꡬλΆνμ¬ μ
λ ₯ λ°κΈ°
n, k = map(int, input().split())
# μ΅μ νμ μ μ₯ν λ³μ
result = 0
while True:
# (첫λ²μ§Έ μ°μ°) Nμ΄ Kλ‘ λλμ΄ λ¨μ΄μ§λ μκ° λ λκΉμ§ 1μ λΉΌκΈ°
target = (n // k) * k
result += (n - target)
n = target
# (λλ²μ§Έ μ°μ°) Nμ΄ Kλ³΄λ€ μμμ§ λκΉμ§ Kλ‘ λλκΈ°
if n < k:
break
result += 1
n //= k
# λ§μ§λ§μΌλ‘ λ¨μ μμ λνμ¬ 1μ© λΉΌκΈ°
result += (n - 1)
# μ΅μ’
κ²°κ³Ό μΆλ ₯
print(result)
βοΈ target : λͺ« μ°μ° μ΄μ©, nμ kλ‘ λλμ΄ λ¨μ΄μ§κ² λ§λ€ κ°μ₯ ν° μ
βοΈ μ λ ₯κ° n = 25, k = 3 μΌ λ,
- 첫 λ²μ§Έ λ°λ³΅:
- target = (25 // 3) * 3 = 24: 25λ₯Ό 3μΌλ‘ λλμ΄ λ¨μ΄μ§κ² λ§λ κ°μ₯ ν° μλ 24.
- result += (25 - 24): 25μμ 24λ₯Ό λΊ κ²°κ³Όλ₯Ό resultμ λν¨ (λΊμ
μ°μ°).
λ°λΌμ, result = 1. - n //= k: nμ kλ‘ λλ λͺ«μΌλ‘ μ
λ°μ΄νΈ.
λ°λΌμ, n = 8.result += 1: resultμ 1μ λν¨ (λλκΈ° μ°μ°).
λ°λΌμ, result = 2.
- λ λ²μ§Έ λ°λ³΅:
- target = (8 // 3) * 3 = 6: 8μ 3μΌλ‘ λλμ΄ λ¨μ΄μ§κ² λ§λ κ°μ₯ ν° μλ 6.
- result += (8 - 6): 8μμ 6μ λΊ κ²°κ³Όλ₯Ό resultμ λν¨ (λΊμ
μ°μ°).
λ°λΌμ, result = 3. - n //= k: nμ kλ‘ λλ λͺ«μΌλ‘ μ
λ°μ΄νΈ.
λ°λΌμ, n = 2. - result += 1: resultμ 1μ λν¨ (λλκΈ° μ°μ°).
λ°λΌμ, result = 4.
- μΈ λ²μ§Έ λ°λ³΅:
- target = (2 // 3) * 3 = 0: 2λ₯Ό 3μΌλ‘ λλμ΄ λ¨μ΄μ§κ² λ§λ κ°μ₯ ν° μλ 0.
- result += (2 - 0): 2μμ 0μ λΊ κ²°κ³Όλ₯Ό resultμ λν¨ (λΊμ
μ°μ°).
λ°λΌμ, result = 6. - n < k μ΄λ―λ‘ λ°λ³΅ μ’ λ£.
λ°λΌμ, μ΅μ’
μ μΌλ‘ result = 6μ΄ λλ€.
'Algorithm > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python] BFS μκ³ λ¦¬μ¦ (0) | 2023.12.20 |
---|---|
[Python] μ΄μ§ νμ μκ³ λ¦¬μ¦ (1) | 2023.11.20 |
[Python] μ±μ νκ· - μ½λ©ν μ€νΈ λ¬Έμ (4) | 2023.11.20 |
[Python] μ λ ¬ μκ³ λ¦¬μ¦ - μ ν, μ½μ , ν΅, κ³μ (2) | 2023.11.15 |
[Python] DFS μκ³ λ¦¬μ¦ (0) | 2023.11.13 |