Post

[백준/코틀린] 1931번: 회의실 배정

골드 5

링크

1931번: 회의실 배정

풀이

종료 시간이 빠른 회의부터 선택하면 가장 많은 회의를 배정할 수 있습니다.

회의를 종료 시간 오름차순 → 시작 시간 오름차순으로 정렬한 뒤,
직전 회의의 종료 시간 이후에 시작하는 회의만 선택합니다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
data class Meeting(
    val s: Int,
    val e: Int,
)

fun main() {
    val n = readln().toInt()
    val meetings = List(n) { readln().split(" ").map { it.toInt() } }
        .map { Meeting(it[0], it[1]) }.sortedWith(compareBy(Meeting::e, Meeting::s))
    var lastEndTime = 0
    var ans = 0

    meetings.forEach {
        if (lastEndTime <= it.s) {
            lastEndTime = it.e
            ans++
        }
    }

    println(ans)
}

This post is licensed under CC BY 4.0 by the author.