-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
22-gjsk132 #106
22-gjsk132 #106
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ-μ μ μ κ° μ§°λ Cμ½λλ₯Ό νμ΄μ¬μΌλ‘ λ³ννλκΉ ν΅κ³Ό μκ°μ΄ μ μΈμμ΄μ΄μ κ°λ€ λ²λ Έμ΅λλ€ γ γ ...
μ½κ° μκ°μ λ°κΏμ
μ μ΄λΆν° λ§κ°μ§ λ²νΌμ μ μΈνκ³ , λ§κ°μ§μ§ μμ λ²νΌλ€λ§ κ°μ§κ³ λ§λ€ μ μλ 1μ리~6μ리 μ«μλ₯Ό μ¬κ·λ₯Ό ν΅ν΄ λ§λ€μ΄μ κ·Έ κ²½μ°μ λν΄μ νμλ₯Ό κ°±μ νλ νμμ μ½λλ₯Ό μ§°μ΅λλ€.
input = open(0).readline
N = int(input())
if (M := int(input())):
broken_btns = set(map(int, input().split()))
if M == 10:
print(abs(100 - N))
else:
ans = abs(100 - N)
def backtracking(num: str = ''):
global ans
for btn in range(10):
if btn in broken_btns:
continue
tmp_num: str = num + str(btn)
ans = min(ans, abs(N - int(tmp_num)) + len(tmp_num))
if len(tmp_num) < 6:
backtracking(tmp_num)
backtracking()
print(ans)
else:
print(min(abs(100 - N), len(str(N))))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
쑰건문μ μ΄λ κ² μ€μ¬μ μ¬μ©νλκΉ μ½λκ° μ λ§ κΉλν΄λ³΄μ΄λ€μ!π μκ³ νμΈμ΅λλ€ππ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
λΈλ£¨νΈν¬μ€ = λ
Έκ°λ€
λ무 μκΈ°λ€μπ
μ λ²μ λΈλ£¨νΈν¬μ€ μκ³ λ¦¬μ¦ λμ νλ€κ° ν¬κΈ°νμλλ°
μμΈνκ² PR μ¨μ£Όμ
μ μ½κ² μ΄ν΄ν μ μμμ΅λλ€!
λ¬Έμ νλ€κ° λ°λ‘ μΌμ΄μ€ μ μ©ν΄λ³΄κ³ λλ΄ λ§μΆλ©΄ μ§μ§ κΈ°λΆμ’μ κ² κ°μ΅λλ€...
μκ³ λ§μΌμ
¨μ΅λλ€!!
π λ¬Έμ λ§ν¬
λ°±μ€ 1107 : 리λͺ¨μ»¨
βοΈ μμλ μκ°
1μκ°
β¨ μλ μ½λ
π― λ¬Έμ μ΄ν΄
μκ³ λ¦¬μ¦ λΆλ₯ : λΈλ£¨νΈν¬μ€(Brute Force)
μνλ μ±λμ μλ¦Ώμλ§λ€ κ²½μ°μ μλ₯Ό μκ°ν΄μ κ²°κ³Όλ₯Ό λΌ μ μμ§λ§ μκ°νκΈ°μ 볡μ‘ν κ² κ°λ€. κ·Έλμ λ²νΌμ λλ¬μ μ κ·Όμ΄ κ°λ₯νκ° μλκ°λ₯Ό νλ¨νλ `cannel`μ΄λΌλ 리μ€νΈλ₯Ό λ§λ€μ΄μ μ¬μ©ν κ²μ΄λ€.
μνλ μ±λλ‘ κ°λ €λ κ²½μ°μ μλ ν¬κ² 2κ°μ§λ‘ λλμ΄μ§ μ μλ€.
1. μ±λμ μμ§μ΄μ§ μκ³ , μ μλλ§ μ¬μ©νλ κ²½μ°
2. μ±λμ μμ§μΈ ν, μ μλλ‘ μμ§μ΄λ κ²½μ°
1λ² κ²½μ°λ κ°λ¨νκ² μνλ μ±λ κ°κ³Ό νμ¬ μμΉ (100)μ μ°¨μ΄λ‘ μ μ μλ€.
2λ² κ²½μ°λ μμ λ§λ€μ΄λ
cannel
μ΄λΌλ 리μ€νΈλ₯Ό νμ©νλ€.λͺ©ν μ±λμ κΈ°μ€μΌλ‘ μ μλ λ²μλ₯Ό 1μ© λλ €κ°λ©΄μ λ²νΌμ λλ¬μ μ κ·Όν μ μλ κ°μ₯ κ°κΉμ΄ μ±λμ μ°Ύλλ€.
μ κ·Ό κ°λ₯ν λ²νΌμ λ§λ¬μ λ, ν΄λΉ λ²νΈλ₯Ό λλ₯΄κΈ° μν΄ νμν λ²νΌ νμλ₯Ό λν΄μ£Όλ©΄ λλ€.
λ§μ§λ§μΌλ‘ 1λ²κ³Ό 2λ²μ κ²°κ³Ό μ€μμ μ΅μκ°μ μΆλ ₯ν΄μ£Όλ©΄ λλ€.
πμ½λ μ€λͺ
target
: λͺ©ν μ±λcannel
: μ±λμ μ κ·Ό μ¬λΆλ₯Ό μ μ μλ boolean 리μ€νΈlimit
:cannel
μ μ νupDown
: μ μλλ§ μ΄λνλ κ²½μ° μ΅μ λ²νΌ νμ (1λ²)cnt
: λͺ©ν μ±λκ³Ό λλ₯Ό μ μλ κ°μ₯ κ°κΉμ΄ λ²νΌκ³Όμ 거리 (2λ²)brokenCnt
: κ³ μ₯λ λ²νΌμ μbroken
: κ³ μ₯λ λ²νΌλ€μ λ³μμ λͺ©μ μ λ§μΆ°μ μ λ ₯μ λ°κ³ , 리μ€νΈλ₯Ό λ§λ€μ΄μ€λ€.
μ°μ κ³ μ₯λ λ²νΌμ΄ μλ€λ©΄ κ·Έ λ²νΌμ λν μ 보λ₯Ό 리μ€νΈλ‘ μ λ ₯λ°κ³ 2λ² κ³Όμ μ μ§ννλ€.
λ°λ©΄μ, κ³ μ₯λ λ²νΌμ΄ μλ€λ©΄ 2λ² κ³Όμ μ μ€ν΅νκ³ , λͺ©ν μ±λμ λλ₯΄κΈ° μν λ²νΌ νμλ§
cnt
μ λν΄μ€λ€.( 2λ² : λ²νΌμ λλ£° μ μλ μ±λ μ€μμ λͺ©ν μ±λμμ κ°μ₯ κ°κΉμ΄ μ±λμ μ°Ύλ κ³Όμ )
ν΅μ¬ μ½λ
for λ°λ³΅λ¬Έ
μ±λ λ²νΈμ λͺ¨λ λ²νΈμ λ²νΌμ΄ λΆμμ‘λμ§ νμΈνλ κ³Όμ μ΄λ€.
λ§μ½ λΆμμ§ λ²νΈκ° μ«μ μ€μ νλλΌκ³ μλ€λ©΄ (
any
)False
λ₯Ό λ£μ΄μ£Όκ³ , μλλΌλ©΄True
λ₯Όcannel
μ λ£μ΄μ€λ€.while λ°λ³΅λ¬Έ
cnt
κ°upDown
μ νμλ₯Ό λκΈ° μ κΉμ§λ§ λ°λ³΅ν΄μ€λ€.( μ±λμ λ²μλ₯Ό λ무 λ©λ¦¬κΉμ§ νμνλ κ²μ λ§κΈ° μν΄,
cnt
κ°upDown
λ³΄λ€ μμ λλ§ λ°λ³΅ν΄μ€λ€. )cnt
λ λͺ©ν μ±λκ³Ό κ°μ₯ κ°κΉμ΄ μ±λκ³Όμ 거리μ΄λ€.μ²μμ 0μΌλ‘ μμνμ¬ λͺ©ν μ±λμ΄ λλ₯Ό μ μλμ§
cannel
μ μ¬μ©ν΄μ νμΈνκ³ , μλλΌλ©΄ 거리 λ²μλ₯Ό +1 ν΄μ€λ€.λͺ©ν μ±λμμ
cnt
λ§νΌ λ¨μ΄μ§ μ±λμ΄ λλ₯Ό μ μλ€λ©΄, ν΄λΉ 거리cnt
μ μ±λμ λλ₯΄κΈ° μν΄ νμν λ²νΌ νμλ₯Ό λν΄μ€λ€.(
target-cnt
μtarget+cnt
)κ° λμμ μ±λ¦½ν κ²½μ°μλtarget-cnt
κ° λ²νΌμ λ μ κ² λλ₯Ό κ°λ₯μ±μ΄ μκΈ° λλ¬Έμtarget-cnt
λ₯Ό νλ¨νλ 쑰건문μ λ¨Όμ μ¨μ£Όμ΄μΌ νλ€.λ§μ§λ§μΌλ‘ 2κ°μ§ λ°©λ² μ€μμ μμ μλ₯Ό μΆλ ₯ν΄μ€λ€.
μ 체 μ½λ
π μλ‘κ² μκ²λ λ΄μ©
μ΄ λ¬Έμ λ₯Ό νλ©΄μ μ°Έκ³ ν μλ§μ λ°λ‘ μΌμ΄μ€