Title: p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식) · Issue #4 · onlybooks/java-algorithm-interview · GitHub
Open Graph Title: p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식) · Issue #4 · onlybooks/java-algorithm-interview
X Title: p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식) · Issue #4 · onlybooks/java-algorithm-interview
Description: 제가 가지고 있는 전자책은 2023년 10월 20일 버전 1.0 입니다. p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식)에 질문이 있어 문의 드립니다. 풀이1, 3 모두 언어의 차이(java, kotlin)만 있을 뿐, 모두 이중 구조 방식으로 풀이하고 있습니다. 하지만 값을 추출한 후, 대응하는 다른 힙의 엘리먼트를 삭제하는 과정이 비효율적이라고 생각합니다. => 최대값 추출의 경우, 최대힙에서 ...
Open Graph Description: 제가 가지고 있는 전자책은 2023년 10월 20일 버전 1.0 입니다. p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식)에 질문이 있어 문의 드립니다. 풀이1, 3 모두 언어의 차이(java, kotlin)만 있을 뿐, 모두 이중 구조 방식으로 풀이하고 있습니다. 하지만 값을 추출한 후, 대응하는 다른 힙의 엘리먼트를 삭제하는 ...
X Description: 제가 가지고 있는 전자책은 2023년 10월 20일 버전 1.0 입니다. p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식)에 질문이 있어 문의 드립니다. 풀이1, 3 모두 언어의 차이(java, kotlin)만 있을 뿐, 모두 이중 구조 방식으로 풀이하고 있습니다. 하지만 값을 추출한 후, 대응하는 다른 힙의 엘리먼...
Opengraph URL: https://github.com/onlybooks/java-algorithm-interview/issues/4
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식)","articleBody":"제가 가지고 있는 전자책은 2023년 10월 20일 버전 1.0 입니다.\r\n\r\np.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식)에 질문이 있어 문의 드립니다.\r\n\r\n풀이1, 3 모두 언어의 차이(java, kotlin)만 있을 뿐, 모두 이중 구조 방식으로 풀이하고 있습니다.\r\n하지만 값을 추출한 후, 대응하는 다른 힙의 엘리먼트를 삭제하는 과정이 비효율적이라고 생각합니다.\r\n=\u003e 최대값 추출의 경우, 최대힙에서 최대값을 추출 후, 해당 값을 최소힙에서 remove() 메서드를 통해 제거\r\n=\u003e 최소값 추출의 경우, 최소힙에서 최소값을 추출 후, 해당 값을 최댜힙에서 remove() 메서드를 통해 제거\r\n\r\n우선순위 큐의 이점은 최대값과 최소값 추출을 O(log n)에 수행하여 완전탐색 O(n)에 비해 빠르다는 것이지만,\r\n이후, remove() 메서드를 사용하면 결국 시간복잡도 O(n)의 연산으로 우선순위 큐를 사용하는 의미가 사라집니다.\r\n\r\n전체 엘리먼트 관리를 아래와 같이 전체 엘리먼트 개수로 하게 되면, 값 추출의 시간복잡도가 O(log n)이 됩니다.\r\n```\r\nimport java.util.*\r\n\r\nclass Solution {\r\n fun solution(operations: Array\u003cString\u003e): IntArray {\r\n // 우선순위 큐 선언, 자바 기본은 최소 힙이므로 최대 힙으로 정렬 지정\r\n val minHeap: Queue\u003cInt\u003e = PriorityQueue()\r\n val maxHeap: Queue\u003cInt\u003e = PriorityQueue(Collections.reverseOrder())\r\n var totalCnt = 0\r\n // 명령어 목록을 하나씩 순회하면서 해당하는 작업 수행\r\n operations\r\n .map { it.split(\" \") }\r\n .forEach { op -\u003e\r\n // 삽입 연산\r\n when (op[0]) {\r\n \"I\" -\u003e { // 추출 연산\r\n minHeap.add(op[1].toInt())\r\n maxHeap.add(op[1].toInt())\r\n totalCnt++\r\n }\r\n\r\n \"D\" -\u003e { // 삭제 연산\r\n if (totalCnt \u003e 0) {\r\n when (op[1]) {\r\n // 값이 1인 경우 최댓값 추출\r\n \"1\" -\u003e maxHeap.poll()\r\n // 값이 -1인 경우 최솟값 추출\r\n \"-1\" -\u003e minHeap.poll()\r\n }\r\n if (--totalCnt == 0) {\r\n maxHeap.clear()\r\n minHeap.clear()\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 최종결과인 최댓값과 최솟값을 추출하고 값이 없다면 0, 아니라면 해당 값으로 리턴\r\n return intArrayOf(\r\n maxHeap.poll() ?: 0,\r\n minHeap.poll() ?: 0\r\n )\r\n }\r\n}\r\n```\r\n\r\n검토 부탁드리며, 혹시 저의 의견중 틀린 부분이 있으면 알려주시면 감사하겠습니다.","author":{"url":"https://github.com/hoogom88","@type":"Person","name":"hoogom88"},"datePublished":"2024-02-16T06:21:34.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/4/java-algorithm-interview/issues/4"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:41ac6bfe-165a-8342-c312-41518b755b34 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A42C:F6370:53ADD14:71FE0B4:697825B4 |
| html-safe-nonce | 293e5b2aaab5c0e0fdfee9eec781feb1e9ca34fc615f74ca4e3252f3677099df |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNDJDOkY2MzcwOjUzQUREMTQ6NzFGRTBCNDo2OTc4MjVCNCIsInZpc2l0b3JfaWQiOiIyODA1MzM0Nzc1MzYxNDQ3MzQ4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | b142b45068ee376f14bd06d59a38b4986e22715c024a3b54f490a9fc49986bca |
| hovercard-subject-tag | issue:2137950906 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/onlybooks/java-algorithm-interview/4/issue_layout |
| twitter:image | https://opengraph.githubassets.com/aabfb31cc569060277b22ba0d42cd7fd914ad53d2551504b7f0a14b7b90a0882/onlybooks/java-algorithm-interview/issues/4 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/aabfb31cc569060277b22ba0d42cd7fd914ad53d2551504b7f0a14b7b90a0882/onlybooks/java-algorithm-interview/issues/4 |
| og:image:alt | 제가 가지고 있는 전자책은 2023년 10월 20일 버전 1.0 입니다. p.g. 596의 '이중 우선순위 큐' 풀이1, 3 (이중 구조 방식)에 질문이 있어 문의 드립니다. 풀이1, 3 모두 언어의 차이(java, kotlin)만 있을 뿐, 모두 이중 구조 방식으로 풀이하고 있습니다. 하지만 값을 추출한 후, 대응하는 다른 힙의 엘리먼트를 삭제하는 ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | hoogom88 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 2981c597c945c1d90ac6fa355ce7929b2f413dfe7872ca5c435ee53a24a1de50 |
| turbo-cache-control | no-preview |
| go-import | github.com/onlybooks/java-algorithm-interview git https://github.com/onlybooks/java-algorithm-interview.git |
| octolytics-dimension-user_id | 36435243 |
| octolytics-dimension-user_login | onlybooks |
| octolytics-dimension-repository_id | 684433808 |
| octolytics-dimension-repository_nwo | onlybooks/java-algorithm-interview |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 684433808 |
| octolytics-dimension-repository_network_root_nwo | onlybooks/java-algorithm-interview |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 8cc3e064910e26648760f573a358cfc07c97b42c |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width