From 1f0763464d5bb7b8949dd5fc61de1386c68da3b2 Mon Sep 17 00:00:00 2001 From: tonic523 Date: Fri, 21 Jun 2024 08:36:21 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=84=A4=ED=8A=B8=EC=9B=8C?= =?UTF-8?q?=ED=81=AC=20=EB=AC=B8=EC=A0=9C=20=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...44\355\212\270\354\233\214\355\201\254.md" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "\354\265\234\354\232\260\354\204\235/\353\204\244\355\212\270\354\233\214\355\201\254.md" diff --git "a/\354\265\234\354\232\260\354\204\235/\353\204\244\355\212\270\354\233\214\355\201\254.md" "b/\354\265\234\354\232\260\354\204\235/\353\204\244\355\212\270\354\233\214\355\201\254.md" new file mode 100644 index 0000000..27e4d12 --- /dev/null +++ "b/\354\265\234\354\232\260\354\204\235/\353\204\244\355\212\270\354\233\214\355\201\254.md" @@ -0,0 +1,41 @@ +# 네트워크 + +```kotlin +import java.util.* + +class Solution { + fun solution(n: Int, computers: Array): Int { + var answer = 0 + + var visited = Array(computers.size) { false } + + for ((n, computer) in computers.withIndex()) { + if (visited[n]) { + continue + } + visited[n] = true + bfs(n, computers, visited) + answer += 1 + } + return answer + } + + fun bfs(n: Int, computers: Array, visited: Array) { + var queue: Queue = LinkedList() + queue.add(n) + + while (queue.isNotEmpty()) { + var now = queue.poll() + + for ((next, computer) in computers[now].withIndex()) { + if (visited[next] || computer != 1) { + continue + } + queue.add(next) + visited[next] = true + } + } + } +} + +``` \ No newline at end of file From 2fa3de907b6d2e3896ededa0d1d6fd38b632e1e8 Mon Sep 17 00:00:00 2001 From: tonic523 Date: Fri, 21 Jun 2024 08:38:32 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=9D=B4=EC=A4=91=EC=9A=B0?= =?UTF-8?q?=EC=84=A0=EC=88=9C=EC=9C=84=ED=81=90=20=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...40\354\210\234\354\234\204\355\201\220.md" | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 "\354\265\234\354\232\260\354\204\235/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.md" diff --git "a/\354\265\234\354\232\260\354\204\235/\354\235\264\354\244\221\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220.md" "b/\354\265\234\354\232\260\354\204\235/\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..e0e6bef --- /dev/null +++ "b/\354\265\234\354\232\260\354\204\235/\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,63 @@ +# 이중우선순위큐 + +```kotlin +import java.util.* + +class Solution { + fun solution(operations: Array): IntArray { + var answer = intArrayOf() + + var totalQueue = mutableSetOf() + var minQueue = PriorityQueue() + var maxQueue = PriorityQueue(Collections.reverseOrder()) + + for (operation in operations) { + var (command, numberValue) = operation.split(" ") + val number = numberValue.toInt() + + if (command == "I") { + totalQueue.add(number) + minQueue.add(number) + maxQueue.add(number) + } else if (command == "D") { + if (number == 1) { + while (maxQueue.isNotEmpty()) { + val maxNumber = maxQueue.poll() + if (totalQueue.contains(maxNumber)) { + totalQueue.remove(maxNumber) + break + } + } + } else { + while (minQueue.isNotEmpty()) { + val minNumber = minQueue.poll() + if (totalQueue.contains(minNumber)) { + totalQueue.remove(minNumber) + break + } + } + } + } + } + print(totalQueue) + var maxNumber = 0 + var minNumber = 0 + while (maxQueue.isNotEmpty()) { + maxNumber = maxQueue.poll() + print(maxNumber) + if (totalQueue.contains(maxNumber)) { + break + } + maxNumber = 0 + } + while (minQueue.isNotEmpty()) { + minNumber = minQueue.poll() + if (totalQueue.contains(minNumber)) { + break + } + minNumber = 0 + } + return intArrayOf(maxNumber, minNumber) + } +} +``` \ No newline at end of file