
https://www.acmicpc.net/problem/1107
λ¬Έμ
μλΉμ΄λ TVλ₯Ό λ³΄κ³ μλ€. μλΉμ΄λ μ±λμ λλ¦¬λ €κ³ νμ§λ§, λ²νΌμ λ무 μΈκ² λλ₯΄λ λ°λμ, μΌλΆ μ«μ λ²νΌμ΄ κ³ μ₯λ¬λ€.
리λͺ¨μ»¨μλ λ²νΌμ΄ 0λΆν° 9κΉμ§ μ«μ, +μ -κ° μλ€. +λ₯Ό λλ₯΄λ©΄ νμ¬ λ³΄κ³ μλ μ±λμμ +1λ μ±λλ‘ μ΄λνκ³ , -λ₯Ό λλ₯΄λ©΄ -1λ μ±λλ‘ μ΄λνλ€. μ±λ 0μμ -λ₯Ό λλ₯Έ κ²½μ°μλ μ±λμ΄ λ³νμ§ μκ³ , μ±λμ 무νλ λ§νΌ μλ€.
μλΉμ΄κ° μ§κΈ μ΄λνλ €κ³ νλ μ±λμ Nμ΄λ€. μ΄λ€ λ²νΌμ΄ κ³ μ₯λ¬λμ§ μ£Όμ΄μ‘μ λ, μ±λ NμΌλ‘ μ΄λνκΈ° μν΄μ λ²νΌμ μ΅μ λͺ λ² λλ¬μΌνλμ§ κ΅¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μλΉμ΄κ° μ§κΈ λ³΄κ³ μλ μ±λμ 100λ²μ΄λ€.
μ λ ₯
첫째 μ€μ μλΉμ΄κ° μ΄λνλ €κ³ νλ μ±λ N (0 β€ N β€ 500,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€μλ κ³ μ₯λ λ²νΌμ κ°μ M (0 β€ M β€ 10)μ΄ μ£Όμ΄μ§λ€. κ³ μ₯λ λ²νΌμ΄ μλ κ²½μ°μλ μ μ§Έ μ€μλ κ³ μ₯λ λ²νΌμ΄ μ£Όμ΄μ§λ©°, κ°μ λ²νΌμ΄ μ¬λ¬ λ² μ£Όμ΄μ§λ κ²½μ°λ μλ€.
μΆλ ₯
첫째 μ€μ μ±λ NμΌλ‘ μ΄λνκΈ° μν΄ λ²νΌμ μ΅μ λͺ λ² λλ¬μΌ νλμ§λ₯Ό μΆλ ₯νλ€.
μμ

쑰건
- μκ° μ ν: 2μ΄
- λ©λͺ¨λ¦¬ μ ν: 256MB
μ½λ
from itertools import product
import sys
input = sys.stdin.readline
# μ
λ ₯
go_num = input().rstrip()
out_cnt = int(input())
# κ³ μ₯λ λ²νΌμ΄ μλ κ²½μ° (=10κ° λͺ¨λ λμ)
if out_cnt == 0:
result = min(len(go_num), abs(int(go_num) - 100))
print(result)
exit(0)
# λͺ¨λ λ²νΌμ΄ κ³ μ₯λ¬μ κ²½μ°
elif out_cnt == 10:
a = set(input().rstrip().split())
print(abs(int(go_num) - 100))
exit(0)
out_lst = set(input().rstrip().split())
lst = set(str(i) for i in range(10))
lst -= out_lst # μ°¨μ§ν©μ μ΄μ©νμ¬ μ¬μ©κ°λ₯ν λ²νΌμ νμ
ν¨
up_down = abs(int(go_num) - 100) # μ΄κΈ° μ±λμΈ 100λ²μμ +- μ΄λνλ κ²½μ°
minNum = sys.maxsize
for a in range(-1,2): # μ€λ³΅μμ΄μ μμ κ°μ§μλ₯Ό 3κ°μ§ κ²½μ°λ‘ νμ
ν¨
if a == -1:
if '0' in lst or len(go_num) == 1:
continue
for i in product(lst,repeat=len(go_num)+a):
num = ''
for j in i:
num += j
diff = abs(int(go_num) - int(num)) # κ°κ³ μ νλ μ±λκ³Όμ μ°¨μ΄
click = len(str(int(num))) # λ²νΌμ λλ₯Έ νμ
diff += click
if minNum > diff:
minNum = diff
# μΆλ ₯
result = min(minNum, up_down)
print(result)
out_cntκ°0μΌ κ²½μ°μ10μΌ κ²½μ°λ₯Ό 미리 κ³ λ €νλ€.
λͺ¨λ λμνλ κ²½μ°λΌλ, λ²νΌμ μ§μ λλ¬μ κ°λ κ²λ³΄λ€ μ΄κΈ° μ±λ 100 λ²μμ +,- λ‘ μ΄λνλ κ²μ΄ λΉ λ₯Ό μ μκΈ° λλ¬Έμ΄λ€.
Ex) μ±λ 101 μΌλ‘ κ°κ³ μνλ€λ©΄, + λ‘ 1λ²μ΄λ©΄ κ°λ₯νμ§λ§, 101 μ μ§μ λλ₯Έλ€λ©΄ 3λ²μ λμμ΄ νμνλ€.
λͺ¨λ λ²νΌμ΄ κ³ μ₯λ¬λ€λ©΄, +,- λ‘ μ΄λνλ λ°©λ² λ°μλ μ‘΄μ¬νμ§ μλλ€.
- μ°¨μ§ν©μ μ¬μ©νμ¬
lstμ μ¬μ©κ°λ₯ν λ²νΌλ§ λ¨κ²¨μ€λ€.
- μ΄κΈ° μ±λ
100λ²μμ+,-μΌλ‘ μ΄λνλ κ²½μ°μΈup_downλ³μλ₯Ό λ§λ λ€.
go_numμ κΈΈμ΄μ-1,0,+1ν μ€λ³΅μμ΄λ κ³ λ €ν΄μ€λ€.
0 λ² λ²νΌμ΄ κ³ μ₯λ¬κ³ , κ°κ³ μνλ μ±λμ μ«μκ° νμ리 μκ° μλλΌλ©΄, -1 μ κ²½μ°λ κ³ λ €νλ€.
0 λ² λ²νΌμ μ¬μ©ν μ μλ€λ©΄, κ΅³μ΄ κ³ λ €ν΄μ£Όμ§ μμλ μλμ μΌλ‘ μ¬λ¬ μ리μλ₯Ό νμ
ν μ μκΈ° λλ¬Έμ΄λ€.
go_num μ΄ 1555μ΄κ³ , μ¬μ©ν μ μλ λ²νΌμ΄ 2,8 λΏμ΄λΌκ³ κ°μ ν΄λ³΄μ.
λ§μ½ go_num μ κΈΈμ΄μΈ 4λ‘λ§ μ€λ³΅μμ΄μ λ§λ λ€λ©΄, κ·Όμ¬μΉλ 2222 κ° λμ abs(1555-2222) + len(num) μΌλ‘ 671μ΄λΌλ λ΅μ΄ λμ¬ κ²μ΄λ€.
νμ§λ§ go_num μ κΈΈμ΄λ³΄λ€ νλ μμ 3μΌλ‘ μ€λ³΅μμ΄μ λ§λ λ€λ©΄, κ·Όμ¬μΉλ 888 μ΄ λμ abs(1555-888) + len(num) μΌλ‘ 670μ΄λΌλ λ΅μ΄ λμ€κ² λλ€.
λμΌν μ΄μ λ‘ go_num μ κΈΈμ΄λ³΄λ€ νλ ν° μ«μλ‘λ μ€λ³΅μμ΄μ λ§λ€μ΄ νμ
ν΄μ€λ€.
- μ΄λ¬ν κ³Όμ μ κ±°μ³μ λμ¨
diffκ°μ λ²νΌμ λλ₯Έ νμμΈclickμ λν΄ μ΅μ’ μ μΌλ‘minNumμ μμλΈλ€.
- λ§μ§λ§μΌλ‘ 미리 λ§λ€μ΄ λ
up_downλ³μμ λΉκ΅λ₯Ό ν νμ λ μμ κ°μ μΆλ ₯ν΄μ€λ€.
λλ μ & λ°°μ΄ μ
μκ°λ³΄λ€ κ³ λ €ν΄μΌν μ λ€μ΄ λ무 λ§μμ κ½€λ μκ°μ΄ μ€λ κ±Έλ Έλ λ¬Έμ μ΄λ€. λ€λ₯Έ μ¬λλ€μ΄ μ¬λ €μ€ λ°λ‘λ€μ΄ μμλ€λ©΄ ν΄κ²°νκΈ°κ° νλ€μμ κ² κ°λ€.. μ΄λ²μλ λ°λ‘λ₯Ό λ€ λ£μ΄λ³΄λ©° μμ μ νμ§λ§ λ§μ½ μ€μ μ΄λΌλ©΄ λ΄κ° μ§μ ν΄μΌ ν ν λ° μ½μ§ μμ λ―νλ€. λ€μλΆν°λ λ°λ‘λ₯Ό μ§μ μ°Ύμμ ν΄κ²°ν΄λ³΄λ μ°μ΅λ ν΄λ³΄μμΌκ² λ€!
λΈλ£¨νΈν¬μ€ λ¬Έμ λΌ κ·Έλ°μ§ μ£μ§ μΌμ΄μ€λ€μ΄ μλΉν λ§μλ€.. κ·Έλλ μμ λμ ν΄κ²°μ νλ€λ μ μμ λΏλ―ν¨μ λλλ€!