πλ¬Έμ λΆμνκΈ°
- μμλͺ¨μ μΉ΄λ ν μ₯μ λ€ λͺ¨μ리μ 1 ~ 9 μ€ νλμ μ«μκ° νλμ© μ°μ¬μμ
- λͺ¨λ κ°λ₯ν μμ μΉ΄λκ° μ£Όμ΄μ§ λ κ°κ°μ μΉ΄λλ μκ³μλΌλ λ²νΈλ₯Ό κ°μ§
- μκ³μ: μΉ΄λμ μ«μλ€μ μκ³ λ°©ν₯μΌλ‘ μ½μ΄μ λ§λ€μ΄μ§λ λ€ μ리 μλ€ μ€μμ κ°μ₯ μμ μ
- μ λ ₯μΌλ‘ μ£Όμ΄μ§ μΉ΄λμ μκ³μλ₯Ό κ³μ°νμ¬ κ·Έ μκ³μκ° λͺ¨λ μκ³μλ€ μ€ λͺ λ²μ§Έλ‘ μμ μκ³μμΈμ§ ꡬνκΈ°
κ°λ₯ν λͺ¨λ μκ³μλ₯Ό ꡬνλ€κ³ νμ λ, (9^4)*4λ² μ λ νμμ κ±°μΉκ³ , μκ³μλ€μ μ λ ¬νλ μκ°λ³΅μ‘λκ° O(nlog(n)) λ―λ‘ μΆ©λΆν μ ν μκ° λ΄μ νμ΄ν μ μλ€. κ°λ₯ν λͺ¨λ μκ³μλ₯Ό ꡬν΄μ μ λ ¬νκ³ , μ£Όμ΄μ§ μΉ΄λμ μκ³μλ₯Ό κ΅¬ν΄ ν΄λΉ μκ³μκ° λͺλ²μ§Έ μκ³μμΈμ§ ꡬνλ©΄ λλ€.
πμ½λ μ€κ³νκΈ°
- μΉ΄λμ μ ν μ«μ λ€κ°κ° μμλλ‘ μ£Όμ΄μ‘μ λ μκ³μλ₯Ό ꡬνλ ν¨μ get_clock_number(n1, n2, n3, n4)λ₯Ό μ μνλ€.
- 첫λ²μ§Έ μ«μλΆν° λ€λ²μ§Έ μ«μκΉμ§ κ°κ°μ μλ₯Ό 맨첫μ리μλ‘ νλ λ€μ리μλ₯Ό ꡬνλ€.
- λ€μ리μ λ€κ° μ€ κ°μ₯ μμ μλ₯Ό λ°ννλ€.
- μκ³μλ₯Ό μ€λ³΅μμ΄ μ μ₯ν clock_numbers μΈνΈλ₯Ό μ΄κΈ°ννλ€.
- n1, n2, n3, n4 κ°κ° 1λΆν° 10κΉμ§μΈ κ²½μ°λ₯Ό λͺ¨λ νμνλ©° λͺ¨λ μκ³μλ₯Ό ꡬνλ€. (4μ€ forλ¬Έ νμ©)
- μ£Όμ΄μ§ μμ μΉ΄λμ μ ν μλ₯Ό n1, n2, n3, n4λ‘ μ λ ₯λ°μ μκ³μλ₯Ό ꡬνκ³ , cur_clock_numberμ μ μ₯νλ€.
- clock_numbers μΈνΈλ₯Ό 리μ€νΈλ‘ λ³ννκ³ μμ μμΌλ‘ μ λ ¬νμ¬ cur_clock_numberκ° λͺλ²μ§Έ μμΉμ μλμ§ κ΅¬ν΄ μΆλ ₯νλ€.
πμ λ΅ μ½λ
def get_clock_number(n1, n2, n3, n4):
n1, n2, n3, n4 = str(n1), str(n2), str(n3), str(n4)
return min(int(n1+n2+n3+n4), int(n2+n3+n4+n1), int(n3+n4+n1+n2), int(n4+n1+n2+n3))
clock_numbers = set()
for n1 in range(1,10):
for n2 in range(1, 10):
for n3 in range(1, 10):
for n4 in range(1, 10):
clock_numbers.add(get_clock_number(n1, n2, n3, n4))
n1, n2, n3, n4 = map(int, input().split())
cur_clock_number = get_clock_number(n1, n2, n3, n4)
print(sorted(list(clock_numbers)).index(cur_clock_number)+1)
728x90