728x90
https://www.acmicpc.net/problem/1107
💡 문제 풀이
브루트 포스 문제이다. 모든 경우를 따져주면 된다.
백만까지 범위의 모든 숫자를 따져서 가장 낮은 값을 찾아주면 된다.
주어진 범위는 50만까지인데 더 따지는 이유는 500,000 채널을 가려고 하는데
1, 2, 3, 4, 5가 고장 났을 경우 100에서 499,900번을 누르는 게 정답이 아니라
600,000에서 100,000번을 - 누르는게 정답인 경우가 있기 때문이다.
✔️ 느낀 점
생각보다 헛고생한 문제이다. 온전히 나 스스로 풀지 못했다. 특이한 문법이 있어서 한번 생각해봐야겠다.
💻 코드
import sys
input = sys.stdin.readline
n = int(input())
m = int(input())
broken = set(input().split()) if m else set()
ans = abs(100 - n)
for num in range(1000001):
for x in str(num):
if x in broken: break
else:
ans = min(ans, len(str(num)) + abs(num-n))
print(ans)
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[Python] 백준 1182번 : 부분수열의 합 (0) | 2022.07.31 |
---|---|
[Python] 백준 2623번 : 음악프로그램 (0) | 2022.07.31 |
[Python] 백준 1759번 : 암호 만들기 (0) | 2022.07.29 |
[Python] 백준 1577번 : 도로의 개수 (0) | 2022.07.26 |
[Python] 백준 2110번 : 공유기 설치 (0) | 2022.07.26 |
댓글