-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1107.py
More file actions
81 lines (64 loc) · 2.01 KB
/
Copy path1107.py
File metadata and controls
81 lines (64 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from bisect import bisect_left
n = int(input())
# 보고 싶은 채널 번호
m = int(input())
# 고장난 버튼 개수
broken = []
if m != 0:
broken = input().split()
channelList = []
for channelNumInit in range(1000001):
if channelNumInit >= 99 and channelNumInit <= 102:
channelList.append(channelNumInit)
continue
able = True
for button in broken:
if button in str(channelNumInit):
able = False
break
if able:
channelList.append(channelNumInit)
idx = bisect_left(channelList, n)
a = idx - 1
b = idx
c = idx + 1
count = []
# 예상되는 시나리오.. 100에서 +를 했는데 그게 버튼 개수가 적은거임..!
# 99면 1번
# 100면 0번
# 101은 1번
# 102면 2번
if a != -1:
if channelList[a] == 99:
count.append(abs(channelList[a] - n) + 1)
elif channelList[a] == 100:
count.append(abs(channelList[a] - n))
elif channelList[a] == 101:
count.append(abs(channelList[a] - n) + 1)
elif channelList[a] == 102:
count.append(abs(channelList[a] - n) + 2)
else:
count.append(len(str(channelList[a])) + abs(channelList[a] - n))
if b < len(channelList):
if channelList[b] == 99:
count.append(abs(channelList[b] - n) + 1)
elif channelList[b] == 100:
count.append(abs(channelList[b] - n))
elif channelList[b] == 101:
count.append(abs(channelList[b] - n) + 1)
elif channelList[b] == 102:
count.append(abs(channelList[b] - n) + 2)
else:
count.append(len(str(channelList[b])) + abs(channelList[b] - n))
if c < len(channelList):
if channelList[c] == 99:
count.append(abs(channelList[c] - n) + 1)
elif channelList[c] == 100:
count.append(abs(channelList[c] - n))
elif channelList[c] == 101:
count.append(abs(channelList[c] - n) + 1)
elif channelList[c] == 102:
count.append(abs(channelList[c] - n) + 2)
else:
count.append(len(str(channelList[c])) + abs(channelList[c] - n))
print(min(count))