소스코드
target = int(input())
ans = abs(100 - target)
M = int(input())
if M:
broken = set(input().split())
else:
broken = set()
for num in range(1000001):
for N in str(num):
if N in broken:
break
else:
ans = min(ans, len(str(num)) + abs(num - target))
print(ans)
알고리즘
가능한 숫자 조합을 생각하여 문제를 푸려고 했는데 런타임에러가 자꾸 나서 다른 사람의 풀이를 참고했는데
그냥 무식하게 쭉 브루트 포스 알고리즘을 사용하여 풀면 되는 문제였다.
단순한게 또 먹히는 문제도 있는 걸 깨달았다.
'Coding test' 카테고리의 다른 글
[백준/1476/파이썬] 날짜계산 - 브루트포스 (0) | 2023.01.26 |
---|---|
[백준/1339/파이썬] 단어수학 - 그리디 (0) | 2023.01.25 |
[백준/1463/파이썬] 1로 만들기 - DP (0) | 2023.01.23 |
[백준/6588/파이썬] 골드바흐의 추측 (0) | 2023.01.22 |
[백준/16936/파이썬] 나3곱2 (0) | 2023.01.21 |