[알고리즘/백준] 1107: 리모컨(python)

처음에는 permutations를 이용해서 풀려다가 실패했다...

숫자를 0부터 다 체크해야한다. 만약 고장난 숫자라면 패스하고 고장난 숫자가 없으면 그 숫자로 계산을 한다.
1000000을 하는 이유는 채널이 500000인데 숫자는 9까지 있으므로 만약 9를 제외하고 나머지 숫자가 다 고장난다면 999999까지 계산이 가능해서 그렇다.

N, M = int(input()), int(input())
if M > 0:
    a = list(map(int, input().split()))
else:
    a = list()
ans = abs(100 - N)

for i in range(1000000):
    n = str(i)
    for j in range(len(n)):
        if int(n[j]) in a:
            break
        elif j == len(n) - 1:
            ans = min(abs(int(n) - N) + len(n), ans)
print(ans)

좋은 웹페이지 즐겨찾기