Skip to content

Commit d578f03

Browse files
committed
#31 : 1931_회의실 배정
1 parent 0d497b3 commit d578f03

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#2023-05-25-Week7-과제
2+
#1931_회의실 배정
3+
4+
'''
5+
한 개의 회의실을 사용하려는 N개의 회의에 대한 사용표
6+
시작시간, 종료시간 고정
7+
시간이 겹치지 않게 회의실 사용하는 최대 회의 개수
8+
9+
* 중간 중단 x
10+
* 종료 동시에 다음 회의 시작 o
11+
* 회의 시작하자마자 종료 o
12+
* 시작시간 종료시간 0<=자연수<=2^31 -1
13+
14+
입력 1 : 회의 개수 1<=N<=100000
15+
입력 2 : 회의 정보 -> 시작 공백 종료
16+
17+
출력 : 회의 최대 개수
18+
'''
19+
20+
'''
21+
1. 시작시간이 빠른 순서 -> 시작시간이 같은 경우 = 종료시간이 빠른 순서
22+
(2,3) (2,7) :: (2,3) -> (2,7)
23+
2. 종료시간이 빠른 순서 -> 종료시간이 같은 경우 = 시작시간이 빠른 순서
24+
(7,7) (2,7) :: (2,7) -> (7,7)
25+
26+
(2,7) (3,5) (6,7) 입력시
27+
by 1번 :: (2,7) 회의 1개
28+
by 2번 :: (3,5) (6,7) 회의 2개
29+
30+
--> 종료 시간이 빠른 순서,
31+
같은 경우에는 시작 시간이 빠른 순서
32+
'''
33+
34+
35+
### 런타임 에러
36+
37+
import sys
38+
N = int(sys.stdin.readline)
39+
40+
time = []
41+
# 시간 저장하는 리스트
42+
# -> 처음부터 공간을 할당 받고 시작? 입력 받은 만큼 append?
43+
44+
cnt = 0 # 출력할 회의 개수
45+
46+
for _ in range(N):
47+
start, end = map(int, sys.stdin.readline().split())
48+
time.append([start, end])
49+
50+
time = sorted(time, key = lambda time: time[0]) # 시작 시간 sort
51+
time = sorted(time, key = lambda time: time[1]) # 종료 시간 sort
52+
53+
final = 0 # 마지막 회의 시간
54+
55+
for i, j in time:
56+
if i >= final: # 시작 >= 마지막 회의
57+
cnt += 1
58+
final = j # 갱신
59+
60+
print(cnt)
61+

0 commit comments

Comments
 (0)