-
[백준] 1107번 문제 (리모컨) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 8. 23. 14:29
https://www.acmicpc.net/problem/1107
import sys input = sys.stdin.readline n = int(input()) m = int(input()) useless_buttons = list(input().strip()) result = abs(n - 100) def is_exist(num): nums = list(str(num)) for n in nums: if n in useless_buttons: return False return True for i in range(1000001): if is_exist(i): result = min(result, len(str(i)) + abs(i - n)) print(result)
문제는 이해했는데, 너무 장황하게 코드를 짰다가 디버깅하기가 힘들어져서 다른 사람의 풀이를 참고했다.
내 코드는 거의 1000바이트였는데 이 코드는 400바이트가 되지 않는다..
풀이는 0 ~ 1000000 까지 for문을 반복하며 해당 숫자가 모두 누를수 있는 버튼들로 이루어져 있다면,
해당 숫자로 가능한 최소횟수와 입력으로 받은 숫자 n에서 100을 뺀 절대값과 비교하여 작은 숫자를 출력하면 된다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 15654번 문제 (N과 M (5)) 파이썬(Python) 풀이 (0) 2021.08.25 [백준] 1748번 문제 (수 이어 쓰기 1) 파이썬(Python) 풀이 (0) 2021.08.25 [백준] 2309번 문제 (일곱 난쟁이) 파이썬(Python) 풀이 (0) 2021.08.23 [백준] 1476번 문제 (날짜 계산) 파이썬(Python) 풀이 (0) 2021.08.23 [백준] 10451번 문제 (순열 사이클) 파이썬(Python) 풀이 (0) 2021.08.23