일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- BFS
- Bellman-Ford
- 백트래킹
- 데이터베이스
- 함밥
- B대면노래방
- 코드트리
- django
- MyPlaylist
- DP
- 소프트웨어공학
- 최소스패닝트리
- 프로그래머스
- Planned
- Kruskal
- 그리디알고리즘
- DFS
- 알고리즘
- 실습
- 모각코
- programmers
- 파이썬
- 마라마라빔
- minimum spanning tree
- codetree
- SQL
- 백준
- 동적계획법
- 장고
- 종합설계
Archives
- Today
- Total
Leta Learns
[Python] 백준 1107번 - 리모컨 본문
문제 https://www.acmicpc.net/problem/1107
코드 풀이는 주석으로 적어놓았다.
모각코 시간에 풀었던 문제인데 감이 안 잡혀서 일단 무턱대고 풀었더니 말도 안 되는 코드가 나와서 구글링을 했다.
찾아보니 for - else문을 사용한 코드가 있길래 궁금해서 for-else문에 대해 조금 찾아보았다.
for - else문은 for문이 break 등으로 중간에 빠져나오지 않고 끝까지 실행된 경우 else문이 실행되는 구문이다.
for문에 break 등 빠져나오는 구간이 없으면 else를 사용하지 않는다.
https://cagongman.tistory.com/30
import sys
input = sys.stdin.readline
n = int(input())
m = int(input())
ans = abs(100 - n)
if m != 0: #고장난 버튼 존재
b = list(input().split())
else:
b = []
#큰 수에서 작은 수로 내려오는 경우도 있으므로 1000000까지 for문 탐색
#작은 수 -> 큰 수: 0 ~ 500000, 큰 수 -> 작은 수: 500001 ~ 1000000
for i in range(1000001):
for j in str(i):
if j in b: #해당 숫자 버튼이 고장난 경우
break
else:
ans = min(ans, len(str(i)) + abs(i - n)) #min(기존답, 숫자 버튼 클릭 수 + '+/-' 버튼 클릭 수)
print(ans)
'Coding > 백준' 카테고리의 다른 글
[Python] 백준 2581번 - 소수 (0) | 2022.08.25 |
---|---|
[Python] 백준 1010번 - 다리 놓기 (0) | 2022.08.20 |
[Python] 백준 18870번 - 좌표 압축 (0) | 2022.08.17 |
[Python] 백준 2108번 - 통계학 (0) | 2022.08.13 |
[Python] 백준 1149번 - RGB 거리 (0) | 2022.08.12 |
Comments