Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- javaCoding
- 백준
- CodingTest
- 코딩테스트
- 안드로이드
- 코딩테스트 자바
- baekjoon
- 티스토리챌린지
- Coding-Test
- 코테자바
- 자바 코딩테스트
- Android
- CodingTestJava
- ScreenSize
- 오블완
- 뷰바인딩
- 코딩테스트 JAVA
- JavaCodingTest
- 코틀린
- viewpager2
- BottomNavigation
- 화면 크기 구하기
- pattern
- ModelViewPresenter
- kotlin
- programmers
- 산타 환급반
- Java
- 코테
- 자바
Archives
- Today
- Total
KDLiam
Baekjoon(Kotlin) - 11279. 최대 힙 본문
URL : https://www.acmicpc.net/problem/11279
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
[ RESULT ]
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.PriorityQueue
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val N:Int = br.readLine().toInt()
var data: Int
val maxHeap = PriorityQueue<Int>(reverseOrder())
repeat(N) {
data = br.readLine().toInt()
if(data == 0) {
if(maxHeap.size == 0) bw.write("0\n").toString()
else {
val max = maxHeap.poll()
bw.write("$max\n")
}
}
else maxHeap.add(data)
}
br.close()
bw.flush()
bw.close()
}
최대 힙을 어떻게 구현할지 구상하던 중, Kotlin에 PriorityQueue 를 이용하여 쉽게 최대/최소 힙을 구성할 수 있다는 것을 알고 이를 이용하여 코들르 작성했다.
'Problems(Kotlin) > Baekjoon' 카테고리의 다른 글
| Baekjoon(Kotlin) - 1978. 소수 찾기 (0) | 2023.09.20 |
|---|---|
| Baekjoon(Kotlin) - 9935. 문자열 폭발 (0) | 2023.09.19 |
| Baekjoon(Kotlin) - 1300. K번째 수 (0) | 2023.09.17 |
| Baekjoon(Kotlin) - 1920. 수 찾기 (0) | 2023.09.16 |
| Baekjoon(Kotlin) - 1931. 회의실 배정 (0) | 2023.09.15 |