반응형
1107번: 리모컨
첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼
www.acmicpc.net
알고리즘 분류
- 브루트포스 알고리즘
SOLUTION
import sys
N = int(sys.stdin.readline())
M = int(sys.stdin.readline())
if M: # 고장난 버튼이 있을때
broken_buttons = sys.stdin.readline().rstrip().split()
else:
broken_buttons = []
# +/- 버튼만 눌러서 움직일 경우
cnt = abs(100 - N)
# N의 최댓값이 500,000 이므로 최대 1,000,000 번의 채널까지 탐색해줘야 한다
# WHY? 500,000 이상의 채널에서 목표값으로 갈 때의 경우의 수가 더 작을 수 있기 때문이다.
for channel in range(1000001):
for i in str(channel):
# 고장난 버튼이 있으면 입력을 하지못하므로 통과
if i in broken_buttons:
break
# 버튼이 고장나지 않았다면 그 채널로 움직인 후 +/-를 통해 움직이는게 더 최소이므로 갱신
else:
cnt = min(cnt, len(str(channel)) + abs(channel - N))
print(cnt)
'코딩테스트 대비 > BOJ' 카테고리의 다른 글
[Baekjoon/Python] 7569번: 토마토 - 효과는 굉장했다! (0) | 2022.03.09 |
---|---|
[Baekjoon/Python] 5403번: AC - 효과는 굉장했다! (0) | 2022.03.09 |
[Baekjoon/Python] 16928번: 뱀과 사다리 게임 - 효과는 굉장했다! (0) | 2022.03.02 |
[Baekjoon/Python] 11403번: 경로 찾기 - 효과는 굉장했다! (0) | 2022.02.11 |
[Baekjoon/Python] 11286번: 절댓값 힙 - 효과는 굉장했다! (0) | 2022.02.11 |