[xeulbn] WEEK 03 Solutions#2729
Conversation
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Backtracking
- 설명: 깊이 우선 탐색으로 후보들을 재귀적으로 시도하고 가지를 잘라 결과를 모으는 방식으로, 합이 맞는 조합을 찾는 전형적인 Backtracking 패턴입니다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(k * n!) |
| Space | O(k + n) |
피드백: 깊이 우선 탐색으로 모든 조합을 탐색합니다. 재귀 깊이와 현재 경로 저장 공간이 주요 차지에 해당하며, 모든 후보를 차례로 시도합니다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
📊 xeulbn 님의 학습 현황이번 주 제출 문제
누적 학습 요약
문제 풀이 현황
🤖 이 댓글은 GitHub App을 통해 자동으로 작성되었습니다. 🔢 API 사용량 (gpt-5-nano)
|
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Dynamic Programming
- 설명: 문자열을 한 칸씩 보며 현재 문자 또는 두 문자 조합의 유효성 여부에 따라 부분해를 누적하는 방식으로 최적해를 구한다. 이는 인덱스 k에서의 해를 k-1, k-2의 해의 합으로 표현하는 전형적인 DP 패턴이다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(n) |
피드백: 연속된 두 자리의 조합 가능 여부를 판단하며 DP로 순차적으로 해를 구합니다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Greedy, Dynamic Programming
- 설명: 해당 코드는 Kadane 알고리즘으로 연속 부분합을 최적화하는 방식으로 구현되어 있으며, 매 위치에서 부분합을 현재 값과 비교해 더 큰 쪽을 선택하는 그리디 성격을 보인다. 또한 부분해의 최댓값을 누적 관리하므로 DP의 형태로도 해석된다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(1) |
피드백: 현재 구현은 Kadane의 핵심 아이디어를 사용하되 결과를 최대합만 반환합니다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Bit Manipulation
- 설명: 입력 정수를 이진수로 순차 비트 검사하고 1의 개수를 세는 과정으로 비트 연산을 활용하는 패턴이다. 주어진 코드에서 비트를 오른쪽으로 시프트하며 최하위 비트를 확인한다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(b) |
| Space | O(1) |
피드백: 정수의 비트를 순회하며 1의 개수를 누적합니다.
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Two Pointers, Greedy, Hash Map / Hash Set
- 설명: 문자열의 좌우를 포인터로 이동하며 유효문자인지 검사하고 대소문자를 맞춰 비교하는 방식으로 회문 여부를 판단한다. 좌우 포인터를 활용하는 전형적인 Two Pointers 패턴이며, 부분 문자열 선별과 비교 로직으로 간단한 최적화를 적용한다.
📊 시간/공간 복잡도 분석
| 복잡도 | |
|---|---|
| Time | O(n) |
| Space | O(1) |
피드백: 문자열의 양 끝에서 유효 문자를 건너뛰고 비교하는 전형적인 풀이
개선 제안: 현재 구현이 적절해 보입니다.
💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!
sonshn
left a comment
There was a problem hiding this comment.
시간 복잡도나 공간 복잡도도 고려하셔서 최적의 방법으로 풀이하셨네요! 저도 Java로 준비하고 있는데, 덕분에 많이 배워갑니다. 이번 주도 고생많으셨어요!
|
|
||
| return count; | ||
| } | ||
| } |
There was a problem hiding this comment.
비트 연산을 활용해서 해결하셨군요! 찾아보니 이런 것을 Hamming이라고 하는 것 같네요
|
|
||
| return true; | ||
| } | ||
| } |
There was a problem hiding this comment.
저도 정확히 똑같이 풀었습니다! 사실 배열을 활용할까 했었는데, 투 포인터를 사용하는 것이 문제 의도랑 맞는 것 같네요
| current.remove(current.size() - 1); | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
백트래킹으로 해결하셨군요...! 많이 배워갑니다 😊
답안 제출 문제
작성자 체크 리스트
In Review로 설정해주세요.검토자 체크 리스트
Important
본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!