728x90
반응형
백준 1107 리모컨
단순히 100만의 수만 보면 되기 때문에 단순 브루트포스 문제라고 생각했다.
그러나 어떠한 수가 입력됐을 때 무작정 100만의 수만 보면 메모리 낭비라고 생각했다.
📌N이 입력됐을 때 범위를 어떻게 설정해줘야 할까?
기본 채널이 100번으로 설정되어 있기 때문에 임의의 N과의 최댓값은 +만 사용했을 때
N-100이라고 볼 수 있다. 따라서 N의 두 배인 2N이상의 값에서는 앞에서의 최댓값보다 크기 때문에 구할 필요가 없다.
정답
📌 범위를 N*2+1가 아닌 이유는 0이 입력됐을 때 0~100의 수를 조사할 수 없기 때문에 N*2+101를 썼다.
import sys
n = int(sys.stdin.readline())
num = int(sys.stdin.readline())
if num == 0:
lists = []
else:
lists = list(sys.stdin.readline().split())
MIN = abs(100-n)
for i in range(n*2+101):
if abs(n-i) + len(str(i)) < MIN and all(x not in lists for x in str(i)):
MIN = abs(n-i) + len(str(i))
print(MIN)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 1976 여행 가자 (1) | 2025.01.13 |
---|---|
[알고리즘] 백준 1043 거짓말 (0) | 2024.10.16 |
[알고리즘] 백준 13023 ABCDE (0) | 2024.10.16 |
[알고리즘] 백준 13549 숨바꼭질 3 (1) | 2024.10.14 |
[알고리즘] 백준 13913 숨바꼭질 4 (0) | 2024.10.14 |