일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백트래킹
- 데이터베이스
- SQL
- Planned
- 종합설계
- 실습
- codetree
- DP
- 알고리즘
- MyPlaylist
- BFS
- 함밥
- 파이썬
- minimum spanning tree
- 백준
- 마라마라빔
- 장고
- Bellman-Ford
- DFS
- 동적계획법
- 프로그래머스
- Kruskal
- django
- 모각코
- 코드트리
- programmers
- 소프트웨어공학
- 최소스패닝트리
- B대면노래방
- 그리디알고리즘
Archives
- Today
- Total
Leta Learns
[Python] 백준 1449번 - 수리공 항승 본문
문제 https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
문제가 이해가 안 돼서 한참 멍 때렸다.
테이프 길이가 L이고 좌우로 0.5씩 간격을 주어야 하므로 L-1 만큼을 막을 수 있다.
물이 새는 곳을 리스트로 받아 정렬한 후 물이 새기 시작하는 곳을 갱신한다.
현재 새는 곳보다 시작점이 큰 경우에는 이미 테이프로 막고 있는 것이기 때문에 고려할 필요가 없다.
따라서 시작점이 현재 새는 곳보다 작은 경우에만 시작점을 갱신하고 횟수 + 1을 해준다.
import sys
input = sys.stdin.readline
n, l = map(int, input().split())
leak = list(map(int, input().split()))
leak.sort()
s = 0 #start
cnt = 0
for i in leak:
if s < i:
s = i + l - 1
cnt += 1
print(cnt)
'Coding > 백준' 카테고리의 다른 글
[Python] 백준 15651번 - N과 M (3) (0) | 2022.02.25 |
---|---|
[Python] 백준 15650번 - N과 M (2) (0) | 2022.02.25 |
[Python] 백준 15649번 - N과 M (1) (0) | 2022.02.24 |
[Python] 백준 1026번 - 보물 (0) | 2022.02.24 |
[Python] 백준 11399번 - ATM (0) | 2022.02.23 |
Comments