Skip to content

Commit aee3a54

Browse files
committed
[BOJ] #1931.회의실 배정 / 골드5 / 30(∆)
1 parent db8ede8 commit aee3a54

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'''
2+
BOJ #1931. 회의실 배정 (골드5)
3+
https://www.acmicpc.net/problem/1931
4+
유형: Greedy
5+
출처: https://v3.leedo.me/devs/49
6+
'''
7+
8+
n = int(input())
9+
10+
meetings = []
11+
12+
for _ in range(n):
13+
start, end = map(int, input().split(" "))
14+
meetings.append((start, end))
15+
# 종료 시간을 오름차순 정렬하고, 시작 시간을 오름차순 정렬합니다
16+
meetings.sort(key=lambda x: (x[1], x[0]))
17+
18+
time = 0
19+
answer = 0
20+
for meeting in meetings:
21+
if time <= meeting[0]:
22+
time = meeting[1]
23+
answer += 1
24+
25+
print(answer)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
N = int(input())
5+
meetings = []
6+
7+
for _ in range(N):
8+
start, end = map(int, input().split())
9+
meetings.append((start, end))
10+
11+
# 종료 시간 오름차순 정렬, 종료 시간이 같다면 시작 시간 오름차순 정렬
12+
meetings.sort(key=lambda x: (x[1], x[0]))
13+
14+
time = 0 # 현재 시점 (마지막으로 회의가 끝난 시간)
15+
answer = 0 # 배정된 회의 개수
16+
17+
for meeting in meetings:
18+
if time <= meeting[0]: # 현재 회의의 시작 시간이 마지막 종료 시간 이후라면
19+
time = meeting[1] # 종료 시간을 갱신
20+
answer += 1 # 회의 개수 증가
21+
22+
print(answer)

0 commit comments

Comments
 (0)