반응형
-풀이
#0~9 +1,-1 총 11개. 현재 채널 : 100 채널은 0~500000. 0에서 - 누르면 0 그대로
#이동하려는 채널 N이 주어짐
channel=int(input())
#고장난 번호 개수
broken_count = int(input())
#고장난 번호들 리스트
if broken_count == 0:
broken_num = []
else:
broken_num = list(map(int, input().split()))
#최대 이동횟수
max_move = abs(100-channel)
#누를 수 있는 번호는 50만 이상 가능하므로 백만까지 탐색. 큰 수에서 작은 수로 내려오는 경우 생각
for num in range(1000001):
num = str(num)
for N in range(len(num)):
# 해당 숫자가 고장난번호를 누르면 스탑
if int(num[N]) in broken_num:
break
#다 눌러지면 기존답, 번호를 누른 횟수 + 해당 번호로부터 타겟까지의 차이 최소값 출력
elif N == len(num)-1:
max_move = min(max_move, len(num)+abs(int(num)-channel))
print(max_move)
-풀이설명
dp문제같았지만 완전탐색으로 가능했다.
'알고리즘' 카테고리의 다른 글
[그리디/정렬] 백준 1092 파이썬 (배) 골드5 (0) | 2022.05.21 |
---|---|
[DFS/DP] 백준 2146 파이썬 (내리막 길) 골드4 (0) | 2022.05.20 |
[정렬] 백준 5800 파이썬 (성적통계) 실버5 (0) | 2022.05.17 |
[그리디] 백준 1439 파이썬 (뒤집기) 실버5 (0) | 2022.05.16 |
[그래프탐색/DFS] 백준 25195 파이썬 (Yes or yes) 골드4 (0) | 2022.05.16 |