diff --git "a/\355\231\251\354\236\254\354\230\201/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.md" "b/\355\231\251\354\236\254\354\230\201/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.md" new file mode 100644 index 0000000..d3c3d48 --- /dev/null +++ "b/\355\231\251\354\236\254\354\230\201/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.md" @@ -0,0 +1,52 @@ +```kt +import java.util.* + +class Solution { + fun solution(operations: Array): IntArray { + val minHeap = PriorityQueue(Comparator { a, b -> a - b }); + val maxHeap = PriorityQueue(Comparator { a, b -> b - a }); + + var length = 0; + + operations.forEach({ operation -> + var (command, str) = operation.split(" "); + + val num = str.toInt() + + if (command == "I") { + length += 1; + + maxHeap.add(num); + minHeap.add(num); + } else { + if (length > 0) { + length -= 1; + + if (num == 1) { + maxHeap.poll(); + } + + if (num == -1) { + minHeap.poll(); + } + + if (length == 0) { + while (maxHeap.size > 0) { + maxHeap.poll(); + } + + while (minHeap.size > 0) { + minHeap.poll(); + } + } + } + } + }); + + val maxValue = if (maxHeap.size > 0) maxHeap.poll() else 0; + val minValue = if (minHeap.size > 0) minHeap.poll() else 0; + + return intArrayOf(maxValue, minValue); + } +} +```