[Python] 1931번 회의실 배정

이세령·2023년 6월 5일
0

알고리즘

목록 보기
25/43

문제

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

풀이과정

  • 문제 설명
    각 회의 마다 시작시간, 끝나는 시간이 존재한다.
    최대한 많이 회의실을 사용해야 한다.
  • 설명
    빨리 끝날수록 더 많은 회의를 진행할 수 있다.
    예제를 끝나는 것 기준으로 정렬하고 생각해보았다.
    [1, 4], [3, 5], [0, 6], [5, 7], [3, 8], [5, 9], [6, 10], [8, 11], [8, 12], [2, 13], [12, 14] 가장 첫번째 1,4는 무조건 수행이 가능하고 다음에 있는 3,5는 첫번째 회의가 끝나기 전이니 수행할 수 없다. 그 다음인 0,6도 수행할 수 없다. 5,7의 경우에는 앞 회의가 끝난 후 수행할 수 있으니 카운트한다. 이런 방식으로 코드를 구성할 수 있다. → 시작을 비교하고 작으면 무시, 같거나 크면 카운트
    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]))
    
    cnt = 1
    end = time[0][1]
    
    for i in range(1, N):
        if time[i][0] >= end:
            cnt += 1
            end = time[i][1]
    
    print(cnt)
    ```
profile
https://github.com/Hediar?tab=repositories

0개의 댓글