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 에러가 반겨줄 것이다.
'PS > solved.ac' 카테고리의 다른 글
[CLASS 3]백준 9019번 - DSLR (0) | 2021.02.17 |
---|---|
[CLASS 3]백준 7662번 - 이중 우선순위 큐 (0) | 2021.02.16 |
[CLASS 3]백준 11403번 - 경로 찾기 (0) | 2021.02.13 |
[CLASS 3]백준 11286번 - 절댓값 힙 (0) | 2021.02.13 |
[CLASS 3]백준 9205번, 11047번 (0) | 2021.02.12 |
댓글