[hwi-middle] WEEK 13 solutions#2620
Conversation
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Heap / Priority Queue
- 설명: 이 코드는 두 개의 힙을 이용해 데이터 스트림의 중앙값을 효율적으로 찾는 방법을 구현했으며, 힙 자료구조를 활용하는 패턴입니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(log n) |
| Space | O(n) |
피드백: 두 개의 힙(최대힙과 최소힙)을 유지하며, 새 숫자를 적절히 분배하고 균형을 맞추는 방식으로 중앙값을 O(1) 또는 O(log n) 시간에 찾는다. 삽입 시 힙 연산이 O(log n)이고, 공간은 저장된 숫자만큼 차지한다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Two Pointers
- 설명: 이 코드는 정렬된 구간 배열과 새 구간을 병합하는 과정에서 두 포인터를 활용하여 효율적으로 구간을 처리하는 패턴입니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: 입력 구간 리스트를 한 번 순회하며, 새 구간과 겹치는 구간을 병합하고 나머지 구간을 그대로 결과에 추가한다. 전체 과정은 리스트 크기만큼 순회하므로 O(n) 시간과 공간을 사용한다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
📊 hwi-middle 님의 학습 현황이번 주 제출 문제
누적 학습 요약
문제 풀이 현황
🤖 이 댓글은 GitHub App을 통해 자동으로 작성되었습니다. 🔢 API 사용량 (gpt-4.1-nano)
|
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: DFS
- 설명: 이 코드는 이진 탐색 트리의 중위 순회를 재귀적으로 수행하여 k번째 작은 값을 찾는 방식으로, 깊이 우선 탐색(DFS) 패턴을 사용합니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(h) |
피드백: 중위순회는 트리의 모든 노드를 방문하므로 최악의 경우 O(n) 시간이 소요된다. 재귀 호출 스택은 트리 높이만큼 차지한다. 이 방법은 트리의 구조에 따라 O(h) 공간을 사용한다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Binary Search
- 설명: 이 코드는 이진 탐색 트리의 특성을 이용하여 두 노드의 공통 조상을 찾는 방식으로, 값 비교를 통해 탐색 범위를 좁혀가는 이진 탐색 패턴을 사용합니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(h) |
| Space | O(1) |
피드백: BST의 성질을 이용하여 루트부터 시작해 p와 q의 값에 따라 왼쪽 또는 오른쪽으로 이동하며, 두 노드가 다른 쪽에 있으면 현재 노드가 LCA이다. 높이 h만큼 이동하므로 시간은 O(h), 공간은 상수이다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Sorting
- 설명: 이 코드는 회의 시간 간격을 정렬한 후 겹치는지 검사하는 방식으로, 정렬을 활용하는 패턴에 속합니다. 정렬 후 순차적 비교로 문제를 해결하는 대표적인 방법입니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n log n) |
| Space | O(1) |
피드백: 회의를 시작 시간 기준으로 정렬하고, 인접 회의의 종료 시간과 비교하여 겹침 여부를 판단한다. 정렬이 O(n log n), 이후 검사에 O(n) 시간 소요. 공간은 정렬하는 데 필요한 공간만 사용한다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
| return impl(root, k, cur); | ||
| } | ||
|
|
||
| int impl(TreeNode* root, int k, int& cur) { |
There was a problem hiding this comment.
method name 을 직관적으로 작성해주시면 더 좋을 것 같습니다!
hyeri0903
left a comment
There was a problem hiding this comment.
한 주 고생하셨습니다. 다음주도 화이팅이에요!
답안 제출 문제
작성자 체크 리스트
In Review로 설정해주세요.검토자 체크 리스트
Important
본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!