반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 백준 그래프 탐색 파이썬
- 백준 토마토 파이썬
- 자바
- 백준 그래프 이론 파이썬
- 알고리즘
- 2022년 정보처리기사 실기
- 백준 백트랙킹 파이썬
- 정보처리기사
- python
- BFS
- dfs
- 백준 N-Queens
- 프로그래밍
- 백준 백트랙킹
- BOJ
- 자료구조
- 파이썬
- 코딩테스트
- 코드
- 백준
- 그리디
- 프로그래머스
- 토마토
- 2022년 정보처리기사 실기 가답안
- 프로그래머스 파이썬
- 2022년 정보처리기사 실기 1회 가답안
- it
- 코딩
- 정보처리기사 실기 시험
- 정보처리기사 실기
Archives
- Today
- Total
코딩,안되면 될때까지
[백준 1107번-리모컨]-파이썬 본문
728x90
반응형
solved.ac 난이도 : GOLD5
백준 1107번- 파이썬 풀이
<문제>
https://www.acmicpc.net/problem/1107
<풀이>-완전탐색,브루트포스 알고리즘
채널 N의 범위가 0<=N<=50,000이라고 했으므로 고장나지 않은 숫자중에 만들수 있는 모든 숫자를 살펴보면서 N과 가장 차이가 적은 번호를 찾으면 된다.
이를 위해 버튼을 누를 수 있는 최대 번호를 100,0000으로 한다.
1,000,000으로 하는 이유는누를 수 있는 번호가 500,000보다 클 수 있기때문에 500,000보다 크면서 모든 숫자를 다 거칠 수 있는 숫자이기 때문이다.
따라서 1~1,000,000까지의 숫자를 반복문을 통해 살펴본다.
각각의 숫자를 문자열로 변환후 문자열에 누를 수 없는 버튼이 있다면 다음 번호로 넘어간다.
현재 살펴보고 있는 숫자에 누를 수 없는 버튼이 없다면 현재 숫자에서 N을 뺀 절댓값을 구한다.(채널입력후 목표채널로 가기위한 +,-의 크기)
위에서 구한 절댓값에 누른번호의 길이(버튼 누른 횟수)를 더해야 최종적으로 버튼을 누른 횟수를 구할 수 있다.
반복문을 통해 현재 살펴보고 있는 숫자와 100(현재 보고 있는 채널)을 뺀후 절댓값을 구해 위에서 구한값과 비교한다.->더 작은값 선택
각각의 경우에서 위 과정을 반복해 최솟값이 나올때마다 그 값을 갱신해준다.
<코드>-파이썬
import sys
input = sys.stdin.readline
target = int(input())
n = int(input())
break_num= list(map(int, input().split()))
# 현재 채널에서 +,-만 사용하여 이동하는 경우
min_count = abs(100 - target)
for nums in range(1000001):
nums = str(nums)
for j in range(len(nums)):
# 각 숫자의 버튼이 고장났는지 확인 후, 고장 났으면 break
if int(nums[j]) in break_num:
break
# 고장난 숫자 없이 마지막 자리까지 왔다면 min_count 비교 후 업데이트
elif j == len(nums) - 1:
min_count = min(min_count, abs(int(nums) - target) + len(nums))#(min_count,현재채널에서 목표채널로 가기위한 버튼 클릭 횟수)
print(min_count)
728x90
반응형
'백준 > 백준-파이썬' 카테고리의 다른 글
[백준 11659번-구간합 구하기 4]-파이썬 (10) | 2022.03.22 |
---|---|
[백준 11866번-요세푸스 문제 0]-파이썬 (4) | 2022.03.21 |
[백준 15686번 - 치킨배달]-파이썬 (4) | 2022.03.19 |
[백준 1966번 - 프린터 큐]-파이썬 (0) | 2022.03.18 |
[백준 1018번-체스판 다시 칠하기]-파이썬 (6) | 2022.03.17 |
Comments