PS/solved.ac
[CLASS 3]백준 1107번 - 리모컨
DawIT
2021. 2. 16. 01:25
320x100
1107번 : 리모컨
음... 조건을 통해 채널입력으로 갈 수 있는 가장 가까운 수를 얻어내는 방식으로 풀려고 했는데, 생각보다 너무 고려할 것이 많고 복잡해서 그냥 포기하고(..) 브루트 포스로 풀었다. 자존심 상해... 브루트 포스로 풀면 잘~ 풀린다.
내 코드:
# dawitblog.tistory.com
# 브루트포스
ch,m = int(input()),int(input())
count = abs(100-ch)
if m:
l = input().split()
# 고장난 버튼 빼고 누를 수 있는 버튼
available = [str(k) for k in range(10) if str(k) not in l]
if available:
for num in range(1000001):
num = str(num)
for i in range(len(num)):
if num[i] not in available:
break
elif i == len(num) - 1:
count = min(count,len(num) + abs(ch-int(num)))
print(count)
else:
print(len(str(ch)) if len(str(ch)) < count else count)
다만 주의할 점은, 고장난 버튼의 개수가 0일 경우 입력이 한 줄 줄어들기 때문에 그것을 고려해 주어야 한다. 안그러면 EOF 에러가 반겨줄 것이다.