
코드 접근 방법
1. 배열에 시작 시간과 종료 시간이 담긴 회의 목록을 담는다.
2. 종료 시간이 이른 시간일 수록, 남는 시간이 많아지므로, 종료 시간 기준으로 오름차순 정렬한다.
2-1. 종료 시간이 같을 경우에는 시작 시간 순으로 정렬한다.
3. 정렬된 회의 시간 목록을 순회하며, 이전 회의의 종료 시간 이후에 시작하는 회의만 선택한다.
-> 그리디 알고리즘 !
최종 코드 구현
N= int(input())
arr =[list(map(int,input().split())) for _ in range(N)]
arr.sort(key=lambda x:(x[1],x[0]))
end = 0
ans = 0
for x,y in arr:
if(x>=end):
ans += 1
end = y
else:
continue
print(ans)'[Algorithm] 알고리즘' 카테고리의 다른 글
| 그래프 (1) | 2024.07.09 |
|---|---|
| 플로이드 워셜 알고리즘 (0) | 2024.07.09 |
| 그리디(Greedy) 알고리즘 (1) | 2024.07.02 |
| DFS와 BFS (2) | 2024.06.27 |
| [Python] Heap(힙) (1) | 2024.06.10 |