1107번: 리모컨
첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이
www.acmicpc.net
import sys
input = sys.stdin.readline
n = int(input())
m = int(input())
arr = list(map(int, input().split()))
ans = abs(100 - n)
for num in range(1000001):
num = str(num)
for j in range(len(num)):
if int(num[j]) in arr:
break
elif j == len(num) - 1:
ans = min(ans, abs(int(num) - n) + len(num))
print(ans)
[백준] 1107번 리모컨 - 파이썬(Python) — 조무래기 코딩 (tistory.com)
구글링 했습니당..제 첫 접근은
import bisect
import sys
from collections import deque
input = sys.stdin.readline
n = input().rstrip()
a = [int(i) for i in n]
m = int(input())
arr = deque([0,1,2,3,4,5,6,7,8,9])
marr = list(map(int, input().split()))
for i in marr:
arr.remove(i)
tmp = []
num = 0
for idx, i in enumerate(a):
if not i in arr:
arr.append(i)
arr = sorted(arr)
num = arr[arr.index(i)-1]
print(num)
arr.remove(i)
tmp.append(num)
else:
tmp.append(i)
print(tmp)
ans = len(a)
tmp = ''.join(map(str,tmp))
ans += abs(int(n) - int(tmp))
print(ans)
근데 이렇게 하면 생각해보니까 위에서 더 큰 수가 더 가까울 수도 있는건데
이렇게 하면 너무 if문 투성이되고 말고도 너무 부족한 점이 많아서 구글링햇습니다
설명은 위에 블로그 들어가면 선생님께서 깔끔하게 해주셨습니다
'BOJ' 카테고리의 다른 글
[python] 백준 4195번 - 친구 네트워크 (0) | 2023.08.20 |
---|---|
[python]백준 5052번 - 전화번호 목록 (0) | 2023.08.19 |
[python] 백준 1781번 - 컵라면 (0) | 2023.08.17 |
[python]백준 1091번 - 카드 섞기 (0) | 2023.08.16 |
[python]백준 1034번 - 램프 (0) | 2023.08.15 |
댓글