-
[백준][Kotlin]1931번 회의실 배정백준 2023. 3. 21. 16:59728x90
해당 문제는 주어진 자료를 끝나는 시간이 빠른 순으로 정렬한 뒤에 끝나는 시간이 같을 경우 시작시간이 빠른 순으로 정렬한 뒤에 반복문을 진행 하면서 현재 진행되고 있는 회의의 끝나는 시간과 다음 회의의 시작시간을 비교하여 끝나는 시간과 다음 회의의 시작시간이 같거나 크면 현재 진행되고 있는 회의의 끝나는 시간을 갱신 후 시간이 겹치지 않는 시간의 회의의 수를 갱신하면서 총 겹치지 않는 회의의 수를 알아 낼 수 있습니다.
하기는 제가 작성한 코드와 제출 결과 입니다.
import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.util.* fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) //var bw = BufferedWriter(OutputStreamWriter(System.out)) var st = StringTokenizer(br.readLine()) val N = st.nextToken().toInt() var pq = PriorityQueue<time>(kotlin.Comparator { o1, o2 -> if(o1.end == o2.end) o1.start.compareTo(o2.start) else o1.end.compareTo(o2.end)}) repeat(N){ st = StringTokenizer(br.readLine()) val start = st.nextToken().toInt() val end = st.nextToken().toInt() pq.add(time(start,end)) } var count = 0 var nowe = 0 while(!pq.isEmpty()){ val next = pq.poll() val nexts = next.start val nexte = next.end if(nowe <= nexts){ nowe = nexte count++ } } println(count) //bw.flush() //bw.close() } data class time( val start: Int, val end : Int )
'백준' 카테고리의 다른 글
[백준][Kotlin]1929번 소수 구하기 (0) 2023.03.22 [백준][Kotlin]1541번 잃어버린 괄호 (0) 2023.03.21 [백준][Kotlin]1744번 수 묶기 (0) 2023.03.21 [백준][Kotlin]1715번 카드 정렬하기 (0) 2023.03.21 [백준][Kotlin]11047번 문제 동전 0 (0) 2023.03.20