본문 바로가기
Problem Solving/BOJ

[Greedy] 1931 회의실 배정

by Bokoo14 2023. 1. 4.

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

# 2023.01.04
import sys
input = sys.stdin.readline

n = int(input())
time = [list(map(int, input().split())) for _ in range(n)]

time.sort(key=lambda x: (x[1], x[0]))
# print(time)
endtime = time[0][1] # 회의가 끝나는 시간
index=1
for i in range(1, n):
    if endtime <= time[i][0]:
        endtime = time[i][1]
        index+=1

print(index)

회의가 끝나는 시간이 가장 작은 순서가 가장 중요!

 

time.sort(key lambda x: (x[1], x[0]))을 사용하여 회의가 끝나는 시간이 작은 애들을 우선으로 정렬 후, 회의가 시작하는 시간이 작은 순서대로 정렬

 

endtime이라는 변수에 회의가 끝나는 시간을 저장 후, 순차적으로 회의가 시작하는 시간과 비교하여 회의 일정에 넣을 수 있으면 index+=1을 해준다

'Problem Solving > BOJ' 카테고리의 다른 글

[Sweeping] 2170 선긋기  (0) 2023.01.04
[DP] 12865 평범한 배낭  (0) 2023.01.04
[DP] 1912 연속합  (0) 2023.01.04
[Stack] 1874 스택 수열  (0) 2023.01.03
[Stack] 4949 균형잡힌 세상  (0) 2023.01.03