https://www.acmicpc.net/problem/1107
1107번: 리모컨첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼www.acmicpc.net
풀이방법이 도저히 생각이 안나서 힌트를 얻었더니 그냥 노가다문제였다.
그냥 1부터 500000*2의 수까지 모두 돌면서, 만들수 있으면 n과의 거리를 구하고, 만들수없으면 넘어간다.
앞의 조건 ‘고장난버튼이있는 경우에는 셋제줄에 고장난버튼이 주어진다’ 때문에 고생했다.
고장난버튼이 0일때 입력을 받으면 eof에러가 나므로, 이경우만 예외처리해주면 된다.
노가다풀이
n=int(input())m=int(input())if m: nobutton=input().split()else:
nobutton=[]answer=abs(n-100) # +또는-만눌렀을때for i in range(1000001):
flag=True press_cnt=0 for j in str(i): press_cnt+=1
if j in nobutton: flag=False break if flag:
tmp=press_cnt+abs(n-i) if tmp<answer: answer=tmp
print(answer)