본문 바로가기

코딩/Python

[Python] 백준 1107 리모컨

반응형

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

 

1107번: 리모컨

첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다.  둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼

www.acmicpc.net

 

코드 작성

cha = int(input()) #channel
m = int(input())
ans = abs(100-cha)
if m :
    bttn = set(input().split())  #button
else:
    bttn = set()
for num in range(1000001):
    for i in str(num):
        if i in bttn:
            break:
    else:
        ans = min(ans, len(str(num)) + abs(num - cha))
print(ans)

 

코드  풀이

 

cha = int(input()) #channel
m = int(input())
ans = abs(100-cha) #abs: 절대값
if m : #만약 m에 뭐가 존재한다면
    bttn = set(input().split())  #set을 설정하는 이유는 bttn이 자료형으로 사용하기 위해
else:
    bttn = set()
for num in range(1000001): #50만에 대해 플러스 마이너스 범위이므로 100만까지
    for i in str(num): #523456라면 6자리의 각각의 수에 대해 for문
        if i in bttn:
            break:
    else: #for-else 사용, 11번에 break가 있으므로
        ans = min(ans, len(str(num)) + abs(num - cha))
print(ans)

 

반응형

'코딩 > Python' 카테고리의 다른 글

[Python] 백준 15667  (0) 2022.12.24
[Python] 백준 10972 다음순열  (0) 2022.12.24
[Python] 백준 3085 사탕 게임  (0) 2022.12.19
[Python] 백준 2133 타일 채우기  (0) 2022.12.18
[Python] 백준 11057 오르막수  (0) 2022.12.17