Notice
Recent Posts
Recent Comments
Archives
반응형
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Total
01-09 05:35
250x250
관리 메뉴

꿈꾸는 개발자의 블로그

[백준] Python - 1931 회의실 배정 본문

Algorithm/Baekjoon

[백준] Python - 1931 회의실 배정

aldrn29 2022. 6. 7. 14:29

문제 링크

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

 

1931번: 회의실 배정

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

www.acmicpc.net

 

문제 풀이 

이 문제의 포인트는 회의가 끝나는 시간을 우선순위로 정렬해야 한다는 것이다. 회의가 빨리 끝날수록 다음에 시작할 수 있는 회의가 많기 때문이다. 

  1. 회의 끝나는 시간을 우선순위 정렬
  2. 이전 회의 끝나는 시간 <= 다음 회의 시작 시간 : cnt++, prev_end 업데이트

 

전체 코드

import sys
input = sys.stdin.readline

n = int(input())
time_table = [list(map(int, input().split())) for _ in range(n)]
time_table.sort(key = lambda x : (x[1], x[0])) # 끝나는 시간 우선순위 정렬
cnt, prev_end = 0, 0

# 다음 회의 시작 시간이 이전 회의 끝나는 시간보다 늦게 시작한다면 cnt++
for start, end in time_table :
    if prev_end <= start :
        cnt += 1
        prev_end = end # 이전 회의 끝나는 시간 업데이트

print(cnt)

 

728x90
728x90
Comments