[백준] 1107번 (python 파이썬) 리모컨
2021. 3. 23. 21:42ㆍ발돋움/알고리즘
728x90
반응형

728x90
bt = list(range(10)) # 1~9까지의 버튼 만들기
n = int(input()) #채널
t = int(input()) #고장난 버튼 수
if t != 0:
error = list(map(int, input().split()))
for i in range(t): # 고장난 버튼 제거
bt.remove(error[i])
min_cnt = abs(100 - n) # +버튼 혹은 -버튼 으로만 움직이는 경우
bt = list(map(str, bt))
# 이동하려는 채널은 500,000까지 이나 그 이상의 채널이 있으므로 1,000,000까지 돌아보기
for num in range(1000001):
num = str(num) #문자열로 바꿔주어 한글자씩 접근
size = len(num) # 불필요한 연산제거
for j in range(size):
if num[j] not in bt:
break
elif j + 1 == size: #인덱스와 버튼수가 같을때:
min_cnt = min(min_cnt, abs(n - int(num)) + size)
print(min_cnt)

아무리해도 잘 안풀려서 다른 사람의 소스코드를 참고했음에도 계속 런타임 나서 힘들었다.
예외처리가 많다..반례참고 www.acmicpc.net/board/view/46120
728x90
반응형
'발돋움 > 알고리즘' 카테고리의 다른 글
| [백준] 17425번 (python 파이썬) 약수의 합 (0) | 2021.03.25 |
|---|---|
| [백준] 1748번 (python 파이썬) 수 이어 쓰기1 (0) | 2021.03.24 |
| [백준] 1476번 (python 파이썬) 날짜계산 (0) | 2021.03.23 |
| [백준] 3085번 (python 파이썬) 사탕게임 (0) | 2021.03.23 |
| [백준] 15655번 (python 파이썬) N과 M(6) (0) | 2021.03.23 |