728x90
https://www.acmicpc.net/problem/1931
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
학교에서도 배웠던 문제이고, 그리디라는 것을 알고 푸니 어렵지 않았다.
어떻게 정렬할지만 최대한 생각을 해보았다.
당연히 끝나는 시간을 기준으로 빨리 끝나는 거 부터 쭉 줄 세우고 가능한 회의만 받도록 했다.
빨리 끝나기만 하면 얼마나 걸리든지, 다음 회의를 받을 수 있기 때문이다.
중간에 정렬할 때 생각 못한 부분들이 있어서 오래 걸리긴 했다.
import sys
meeting = sorted([list(map(int, sys.stdin.readline().split())) for i in range(int(sys.stdin.readline().strip()))],
key=lambda x: (x[1], x[0]))
time = 0
result = 0
while meeting:
start_time, end_time = meeting.pop(0)
if start_time >= time and end_time < 2 ** 31:
time = end_time
result += 1
print(result)
'알고리즘 > 그리디' 카테고리의 다른 글
백준 1715 카드 정렬하기 (Python) (1) | 2024.01.31 |
---|---|
백준 1946 신입사원 (Python) (1) | 2024.01.31 |
백준 16953 A → B (Python) (1) | 2024.01.31 |
백준 1213 팰린드롬 만들기 (Python) (0) | 2024.01.30 |
백준 11399 ATM (Python) (0) | 2024.01.30 |