반응형
https://www.acmicpc.net/problem/1107
n = int(input())
m = int(input())
if m == 0:
print(min(len(str(n)), abs(n-100)))
quit()
broken = list(map(int, input().split()))
def possible(s, broken):
nums = set([int(x) for x in s])
for b in broken:
if b in nums:
return False
return True
variable = 0
answer = 1000000
while variable < 600000:
if possible(str(max(0, n-variable)), broken):
target = max(0, n - variable)
answer = len(str(target)) + abs(n-target)
break
if possible(str(n+variable), broken):
target = n + variable
answer = len(str(target)) + abs(n-target)
break
variable += 1
print(min(answer, abs(n-100)))
브루트 포스로 타겟 채널과 가장 가까운 채널로 이동하고, +-버튼으로 타겟까지 도착.
이때 무한 루프를 돌 가능성이 있기 때문에 variable 값에 제한을 두어준다.
이때 첨부터 +- 버튼만으로 이동하는 경우랑 비교를 해줘야함
댓글