[Yiseull] WEEK 02 solutions#2682
Conversation
📊 Yiseull 님의 학습 현황이번 주 제출 문제
누적 학습 요약
문제 풀이 현황
🤖 이 댓글은 GitHub App을 통해 자동으로 작성되었습니다. 🔢 API 사용량 (gpt-5-nano)
|
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set
- 설명: 집합(set)을 이용해 중복 여부를 검사하는 해시 기반 패턴으로, 원소의 유니크 여부를 빠르게 판단합니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: 리스트를 세트로 변환해 길이 차이를 비교한다. 해시 기반 집합으로 평균 상수 시간 접근이 핵심이다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set, Two Pointers, Divide and Conquer
- 설명: 집합을 이용해 중복 제거 및 연속 구간의 시작점만 탐색하는 방식으로 문제를 해결하므로 Hash Set 패턴이 핵심이다. 또한 연속 구간의 길이를 확장해가며 탐색하는 방향은 간접적인 투포인터 흐름으로 볼 수 있다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: 각 원소를 한 번씩만 방문하도록 구성해 불필요한 재탐색을 제거했다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set, Heaps / Priority Queue, Greedy
- 설명: 해당 코드는 먼저 각 숫자의 빈도를 해시 맵에 저장(Hash Map)한 뒤, 빈도 기반으로 최댓값을 뽑기 위해 최대 힙(음수 빈도 사용)으로 우선순위를 매겨 상위 k개를 꺼내는 방식으로 동작합니다. 따라서 Hash Map과 Heap/Priority Queue 패턴이 핵심이며, 빈도 기반 추출에서 부분적으로 Greedy 성격도 내포합니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n log k) |
| Space | O(n) |
피드백: 카운터를 수집한 뒤 힙을 이용해 상위 k개를 추출하는 방식으로 최댓값 순서를 보장한다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set, Two Pointers
- 설명: 해시 맵을 사용해 각 수의 보완 수를 즉시 찾는 방식으로 시간 복잡도 O(n)로 해결합니다. 두 수의 합이 타깃이 되는 쌍을 찾는 대표적인 패턴입니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: 한 번의 순회로 정답을 찾으며, 해시 맵으로 조회를 상수 시간에 수행한다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Dynamic Programming
- 설명: 피보나치 수열 형태의 중간 결과를 저장하여 큰 문제를 작은 문제로 나눠 해결하는 DP 패턴이 적용되어 있습니다. 각 단계의 해를 이전 두 값의 합으로 구합니다.
📊 시간/공간 복잡도 분석
ℹ️ 이 파일에는 2가지 풀이가 포함되어 있어 각각 분석합니다.
풀이 1: Solution.climbStairs — Time: O(n) / Space: O(n)
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: 2 이상의 계단 수를 구하기 위해 dp 배열을 한 차례 순회하며 각 위치의 값을 계산합니다.
개선 제안: 현재 구현이 적절해 보입니다.
풀이 2: Solution.climbStairs — Time: O(n) / Space: O(n)
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: n까지의 순회를 통해 모든 중간값을 보존하며 결과를 얻습니다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
공간 복잡도를 O(1)으로 최적화할 수 있을 것 같습니다!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Two Pointers, Dynamic Programming, Hash Map / Hash Set
- 설명: 왼쪽 곱셈과 오른쪽 곱셈을 이용해 각 원소를 제외한 곱을 구하는 방식으로, 추가 배열에 누적 곱을 저장해 부분 문제를 해결한다. 두 방향으로 누적 곱을 계산하는 점에서 다이나믹 프로그래밍의 누적 상태 활용 패턴에 속한다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(1) |
피드백: 2회 순회를 통해 각 위치의 최종 곱을 계산하는 표준 접근으로 효율적이다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
answer[0]을 1로 할당하니까 로직이 잘 읽히네요. 잘 봤습니다.
공간/시간 복잡도를 코드에 적어주시면 좋을 것 같아요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set, Greedy
- 설명: Counter를 이용해 두 문자열의 문자 빈도를 비교하는 방식으로 해시 맵의 개념을 활용합니다. 간단한 동등성 비교이므로 그리디나 일반적인 해시 기반 비교로 분류할 수 있습니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(AlphabetSize) |
피드백: Counter를 이용해 간단하고 직관적으로 구현됐다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
파이썬의 언어적인 특성을 잘 활용하신 것 같습니다!
저는 성능에 도움이 될 것 같아서, 아래와 같이 길이가 다를 경우 얼리리턴을 해주었습니다. 참고 부탁드립니다~
if len(s) != len(t):
return FalseThere was a problem hiding this comment.
공간 복잡도를 O(1)으로 최적화할 수 있을 것 같습니다!
| answer.append(answer[i - 1] * nums[i - 1]) | ||
|
|
||
| tmp = 1 | ||
| for i in range(n - 1, -1, -1): |
There was a problem hiding this comment.
개인적으로 저는 이렇게 작성하는거를 선호합니다!
for i in reversed(range(n)):There was a problem hiding this comment.
answer[0]을 1로 할당하니까 로직이 잘 읽히네요. 잘 봤습니다.
공간/시간 복잡도를 코드에 적어주시면 좋을 것 같아요!
There was a problem hiding this comment.
파이썬의 언어적인 특성을 잘 활용하신 것 같습니다!
저는 성능에 도움이 될 것 같아서, 아래와 같이 길이가 다를 경우 얼리리턴을 해주었습니다. 참고 부탁드립니다~
if len(s) != len(t):
return False|
@Yiseull 먼저 풀어주신 3개 먼저 리뷰 남겼습니다! |
답안 제출 문제
작성자 체크 리스트
In Review로 설정해주세요.검토자 체크 리스트
Important
본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!