[백준 1931] 회의실 배정

코뉴·2021년 8월 11일
0

백준🍳

목록 보기
48/149

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

🥚문제


🥚입력/출력


🍳코드

from sys import stdin
input = stdin.readline

# time
time = []

for _ in range(int(input())):
    start, end = map(int, input().split())
    time.append((start, end))

# 정렬 기준: (1) 시작 시간, (2) 종료시간
time = sorted(time, key=lambda x:(x[0], x[1]))

# 회의 개수 카운트
count = 0

# 배정된 회의 리스트들
meetings = []

# time 순회하면서 조건에 맞게 meetings에 삽입
for i in range(len(time)):
    # meetings가 비어 있는 경우
    if len(meetings) == 0:
        meetings.append(time[i])
        continue

    # meetings에 요소가 있는 경우
    # last_meeting 가장 최근에 배정된 회의
    last_meeting = meetings[-1]
    # last_meeting과, time[i]가 겹치지 않을 때
    if last_meeting[1] <= time[i][0]:
        meetings.append(time[i])
    # last_meeting과, time[i]가 겹칠 때
    else:
        # time[i]가 last_meeting보다 종료 시간이 빠르면
        # last_meeting이 있던 자리를, time[i]로 교체
        if time[i][1] < last_meeting[1]:
            meetings[-1] = time[i]

# print(meetings)
print(len(meetings))

🧂아이디어

profile
코뉴의 도딩기록

0개의 댓글