https://www.acmicpc.net/problem/1931
문제 해결을 위한 과정
이 문제는 정렬을 이용하면 해결할 수 있었습니다. 끝나는 시간을 기준으로 오름차순으로 정렬을 하면 됩니다. 다만 이 경우 시작 지점 역시 오름차순을 해야 한다는 점이 있습니다. 또한 시작과 동시에 종료인 경우도 한가지 경우로 생각을 해야 합니다.
소스코드
n = int(input())
arr = []
for _ in range(n):
a, b = map(int, input().split())
arr.append((a, b))
arr.sort(key = lambda x: (x[1], x[0]))
startTime = arr[0][0]
endTime = arr[0][1]
ans = 1
for i in range(1, n):
if endTime <= arr[i][0]:
endTime = arr[i][1]
ans += 1
print(ans)
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 2217: 로프 (Python) (0) | 2024.04.22 |
---|---|
백준 알고리즘 2294: 동전 2 (Python) (0) | 2024.04.22 |
백준 알고리즘 2839: 설탕 배달(Python) (1) | 2024.04.19 |
백준 알고리즘 1890: 점프(Python) (2) | 2024.04.19 |
백준 알고리즘 12865: 평범한 배낭(Python) (0) | 2024.04.17 |