DevYoon
[νλ‘κ·Έλλ¨Έμ€] λ§λ²μ μλ¦¬λ² μ΄ν° (Python) λ³Έλ¬Έ
link π https://school.programmers.co.kr/learn/courses/30/lessons/148653
λ¬Έμ μ€λͺ
λ§λ²μ μΈκ³μ μ¬λ λ―Όμλ μμ£Ό λμ νμ μ΄κ³ μμ΅λλ€. νμ΄ λ무 λμμ κ±Έμ΄ λ€λκΈ° νλ λ―Όμλ λ§λ²μ μλ¦¬λ² μ΄ν°λ₯Ό λ§λ€μμ΅λλ€. λ§λ²μ μλ¦¬λ² μ΄ν°μ λ²νΌμ νΉλ³ν©λλ€. λ§λ²μ μλ¦¬λ² μ΄ν°μλ -1, +1, -10, +10, -100, +100 λ±κ³Ό κ°μ΄ μ λκ°μ΄ 10c (c ≥ 0 μΈ μ μ) ννμΈ μ μλ€μ΄ μ ν λ²νΌμ΄ μμ΅λλ€. λ§λ²μ μλ¦¬λ² μ΄ν°μ λ²νΌμ λλ₯΄λ©΄ νμ¬ μΈ΅ μμ λ²νΌμ μ ν μλ κ°μ λν μΈ΅μΌλ‘ μ΄λνκ² λ©λλ€. λ¨, μλ¦¬λ² μ΄ν°κ° μμΉν΄ μλ μΈ΅κ³Ό λ²νΌμ κ°μ λν κ²°κ³Όκ° 0λ³΄λ€ μμΌλ©΄ μλ¦¬λ² μ΄ν°λ μμ§μ΄μ§ μμ΅λλ€. λ―Όμμ μΈκ³μμλ 0μΈ΅μ΄ κ°μ₯ μλμΈ΅μ΄λ©° μλ¦¬λ² μ΄ν°λ νμ¬ λ―Όμκ° μλ μΈ΅μ μμ΅λλ€.
λ§λ²μ μλ¦¬λ² μ΄ν°λ₯Ό μμ§μ΄κΈ° μν΄μ λ²νΌ ν λ²λΉ λ§λ²μ λ ν κ°λ₯Ό μ¬μ©νκ² λ©λλ€.μλ₯Ό λ€μ΄, 16μΈ΅μ μλ λ―Όμκ° 0μΈ΅μΌλ‘ κ°λ €λ©΄ -1μ΄ μ ν λ²νΌμ 6λ², -10μ΄ μ ν λ²νΌμ 1λ² λλ¬ λ§λ²μ λ 7κ°λ₯Ό μλͺ¨νμ¬ 0μΈ΅μΌλ‘ κ° μ μμ΅λλ€. νμ§λ§, +1μ΄ μ ν λ²νΌμ 4λ², -10μ΄ μ ν λ²νΌ 2λ²μ λλ₯΄λ©΄ λ§λ²μ λ 6κ°λ₯Ό μλͺ¨νμ¬ 0μΈ΅μΌλ‘ κ° μ μμ΅λλ€.
λ§λ²μ λμ μλΌκΈ° μν΄ λ―Όμλ νμ μ΅μνμ λ²νΌμ λλ¬μ μ΄λνλ €κ³ ν©λλ€. λ―Όμκ° μ΄λ€ μΈ΅μμ μλ¦¬λ² μ΄ν°λ₯Ό νκ³ 0μΈ΅μΌλ‘ λ΄λ €κ°λλ° νμν λ§λ²μ λμ μ΅μ κ°μλ₯Ό μκ³ μΆμ΅λλ€. λ―Όμμ λ§λ²μ μλ¦¬λ² μ΄ν°κ° μλ μΈ΅μ λνλ΄λ μ μ storey κ° μ£Όμ΄μ‘μ λ, 0μΈ΅μΌλ‘ κ°κΈ° μν΄ νμν λ§λ²μ λμ μ΅μκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±νμΈμ.
μ νμ¬ν
- 1 ≤ storey ≤ 100,000,000
def solution(storey):
answer = 0
while storey:
now = storey % 10
storey //= 10
# 맨 λ μκ° 5λ³΄λ€ μμΌλ©΄ - λ²νΌ λλ₯΄κΈ°
if now < 5:
answer += now
# 맨 λ μκ° 5μ κ°μΌλ©΄
elif now == 5:
next = storey % 10
# λ€μ μκ° 5 μ΄μμΌ κ²½μ° -> + λ²νΌ λλ₯΄κ³ , κ·Έ λ€μ λ μμ +1
# λ€μ μκ° 5 λ―Έλ§μΌ κ²½μ° -> - λ²νΌ λλ₯΄κΈ°
if next >= 5:
storey += 1
answer += 5
# 맨 λ μκ° 5λ³΄λ€ ν¬λ©΄ + λ²νΌ λλ₯΄κ³ , κ·Έ λ€μ λ μμ +1
else:
answer += 10 - now
storey += 1
return answer
π₯ 맨 λμ리 μ«μκ° 5λ³΄λ€ μμ λ, 5μΌ λ, 5λ³΄λ€ ν΄ λλ‘ λλ μ μκ°ν΄μΌ νλ€.
π₯ 5μΌ λ, κ·Έ μμ리 μ«μκ° 5 μ΄μμΈμ§μ μλμ§λ₯Ό λ λλ μ μκ°ν΄μΌ νλ€.
π₯ μ²μμλ λμ리 μ«μκ° 5μΌ λ μμ리 μ«μκ° 4 μ΄μμ΄λ©΄ + λ²νΌμ λλ₯΄λ κ²μΌλ‘ μκ°νλλ°, μΌμ΄μ€ 5λ²κ³Ό 8λ²μ΄ μ€λ΅μΌλ‘ λμλ€. μ§λ¬ΈνκΈ° κ²μνμμ μ΄λ€ λΆμ΄ μ¬λ €μ£Όμ ν μ€νΈ μΌμ΄μ€ 545λ₯Ό νμ΄λ³΄κ³ μκ°μ μλͺ»νλ€λ κ±Έ κΉ¨λ¬μλ€.