[BOJ] 1107. ๋ฆฌ๋ชจ์ปจ(python)
๐๋ฌธ์
๐ช์์ด๋์ด
๊ณ ์ฅ๋ ๋ฒํผ ์ฒดํฌ
๊ณ ์ฅ๋ ๋ฒํผ์ด ์๋ ๊ฒฝ์ฐ ๋ฒํผ๊ณ ์ฅ ์ฒ๋ฆฌ ๊ณผ์ ์ ๊ฑด๋๋ด๋ค.๋ฒํผ ๋๋ฅด๊ธฐ
ํ์ฌ ์ฑ๋๊ณผ ๋ชฉํ ์ฑ๋์ด ๊ฐ์ผ๋ฉด ๋ฒํผ์ ๋๋ฅด์ง ์์๋ ๋๋ค.
ํ์ฌ ์ฑ๋๊ณผ ๋ชฉํ ์ฑ๋์ด ๋ค๋ฅธ ๊ฒฝ์ฐ ๋ฆฌ๋ชจ์ปจ์ ์ฌ์ฉํ๋ค.- ์ซ์ ๋ฒํผ ๋๋ฅด๊ธฐ
๋ชฉํ ์ฑ๋ ์ซ์์ ๊ณ ์ฅ๋ ๋ฒํผ์ ์ซ์๊ฐ ํฌํจ๋๋ฉด ๊ฑด๋๋ด๋ค. - ์๋, ์ ๋ฒํผ ๋๋ฅด๊ธฐ
์ซ์ ๋ฒํผ์ ๋๋ฅธ ํ๋ ํ์ฌ ์ฑ๋์์ ์ ์๋ ๋ฒํผ์ ๋๋ฌ์ ๋ชฉํ ์ฑ๋๋ก ๋ง์ถ๋ค.
- ์ซ์ ๋ฒํผ ๋๋ฅด๊ธฐ
๐ฅ์ฝ๋
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
import sys; input = sys.stdin.readline
target = int(input())
m = int(input())
broken=set()
if m!=0:
broken = set(input().split())
if target == 100:
print(0)
exit(0)
answer =float('inf')
def canPushButton(channel):
for c in str(channel):
if c in broken: return False
return True
for channel in range(1000001):
cnt = 0
if channel==100:
cnt = abs(target-100)
elif canPushButton(channel):
cnt = len(str(channel))
if channel!=target:
cnt += abs(channel - target)
else: continue
answer = min(answer,cnt)
print(answer)
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.