CS/Algorithm 문제

[BaekJoon] 백준 1107번 리모컨 - Python

[BaekJoon] 백준 1107번 리모컨 - Python

 

🎈문제

https://www.acmicpc.net/problem/1107

 

💬설명

범위가 작고, 시간은 많이 주어졌기 때문에 완전탐색으로 풀 수 있는 문제

 

1. +-만 썼을 때 얼마나 걸리는지 구한다.

2. 모든 범위에 대해 고장난 버튼이 없는 수를 찾아서 100에서 몇번 버튼을 눌러야하는지 계산해서 최소값을 업데이트 한다.

 

나는 고장난 버튼을 찾기 위해 set을 써서 교집합을 통해 비교해줬다.

 

👩‍💻코드

N = input()
M = int(input())
if M != 0:
    broken = set(map(int, input().split()))
else:
    broken = set()

# +-로 가는 횟수
answer = abs(100 - int(N))

# 반복문 돌면서 고장난 버튼 없는 수 중에 가장 결과값 작은거 찾기
for i in range(1000001):
    i_li = set(map(int, str(i)))
    if len(broken & i_li) == 0:
        answer = min(answer, abs(int(N) - i) + len(str(i)))

print(answer)

 

728x90
반응형