[백준] 1931번: 회의실 배정 - kotlin

kldaji·2021년 10월 29일
0

백준문제풀이

목록 보기
23/35

문제

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

풀이

  • 첫 번째 오름차순 정렬 기준을 끝나는 회의시간으로 잡고, 두 번째 오름차순 정렬 기준을 시작 회의시간으로 잡는다.
  • 끝나는 회의시간 값을 저장하고, 다음 회의의 시작 시간이 이전의 끝나는 회의 시간보다 같거나 클 때에만 회의실 개수를 증가시킨다.
data class Meeting(val start: Int, val end: Int)

fun main() {
    val br = System.`in`.bufferedReader()
    val bw = System.out.bufferedWriter()
    val n = br.readLine().toInt()
    val meetings = mutableListOf<Meeting>()
    repeat(n) {
        val (s, e) = br.readLine().toString().split(" ").map { it.toInt() }
        meetings.add(Meeting(s, e))
    }
    meetings.sortWith(compareBy({ it.end }, { it.start }))
    var count = 1
    var e = meetings[0].end
    for (i in 1 until n) {
        if (meetings[i].start >= e) {
            e = meetings[i].end
            count++
        }
    }
    bw.write("$count")
    br.close()
    bw.close()
}

더 좋은 풀이 방법 있으면 댓글 달아주세요!!!

profile
다양한 관점에서 다양한 방법으로 문제 해결을 지향하는 안드로이드 개발자 입니다.

0개의 댓글