Skip to content

[j2h30728] WEEK 03 Solutions#2736

Open
j2h30728 wants to merge 6 commits into
DaleStudy:mainfrom
j2h30728:week3
Open

[j2h30728] WEEK 03 Solutions#2736
j2h30728 wants to merge 6 commits into
DaleStudy:mainfrom
j2h30728:week3

Conversation

@j2h30728

@j2h30728 j2h30728 commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

답안 제출 문제

작성자 체크 리스트

  • Projects의 오른쪽 버튼(▼)을 눌러 확장한 뒤, Week를 현재 주차로 설정해주세요.
  • 문제를 모두 푸시면 프로젝트에서 StatusIn Review로 설정해주세요.
  • 코드 검토자 1분 이상으로부터 승인을 받으셨다면 PR을 병합해주세요.

검토자 체크 리스트

Important

본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!

  • 바로 이전에 올라온 PR에 본인을 코드 리뷰어로 추가해주세요.
  • 본인이 검토해야하는 PR의 답안 코드에 피드백을 주세요.
  • 토요일 전까지 PR을 병합할 수 있도록 승인해주세요.

Comment thread 3sum/j2h30728.ts

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Two Pointers, Sorting, Greedy
  • 설명: 3Sum 문제에서 정렬 후 투 포인터(left, right)로 순회하며 합이 0인 경우를 찾고 중복 제거를 위해 건너뛰는 방식으로 해결되므로 Two Pointers 패턴에 해당합니다. 추가로 정렬 자체가 중요한 역할을 하며, 탐색 중 합의 크기에 따라 포인터를 조절하는 점에서 Greedy 성격도 엿보입니다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n^2) O(n^2)
Space O(1) O(1)

피드백: 정렬과 이중 반복문으로 모든 서로 다른 삼중합을 찾는다. 중복 제거를 위한 조건이 포함되어 있어 중복 결과를 피한다.

개선 제안: 현재 구현이 적절해 보입니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Dynamic Programming, Two Pointers
  • 설명: 클라이밍 스탯 문제는 계단을 오르는 경우의 수를 이전 두 상태의 합으로 구하는 전형적인 DP 문제이며, 반복문으로 상태를 갱신하는 패턴이 확인됩니다. 또한 투 포인터처럼 현재와 이전 값을 관리하며 순차적으로 계산합니다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(1) O(1)

피드백: 상향식 DP로 이전 두 값을 굳이 변수로 유지해 공간을 상수로 사용했다.

개선 제안: 현재 구현이 적절해 보입니다.

@dalestudy

dalestudy Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

📊 j2h30728 님의 학습 현황

이번 주 제출 문제

문제 난이도 유형 분석
combination-sum Medium ✅ 의도한 유형
decode-ways Medium ✅ 의도한 유형
maximum-subarray Medium ✅ 의도한 유형
number-of-1-bits Easy ⚠️ 유형 불일치
valid-palindrome Easy ⚠️ 유형 불일치

누적 학습 요약

  • 풀이한 문제: 10 / 75개
  • 이번 주 유형 일치율: 60% (5문제 중 3문제 일치)

문제 풀이 현황

카테고리 진행도 완료
Array ■■■□□□□ 4 / 10 (Medium 2, Easy 2)
Heap ■■□□□□□ 1 / 3 (Medium 1)
Dynamic Programming ■□□□□□□ 2 / 11 (Easy 1, Medium 1)
Graph ■□□□□□□ 1 / 8 (Medium 1)
String ■□□□□□□ 1 / 10 (Easy 1)
Tree ■□□□□□□ 1 / 14 (Medium 1)
Binary □□□□□□□ 0 / 5 ← 아직 시작 안 함
Interval □□□□□□□ 0 / 5 ← 아직 시작 안 함
Linked List □□□□□□□ 0 / 6 ← 아직 시작 안 함
Matrix □□□□□□□ 0 / 4 ← 아직 시작 안 함

🤖 이 댓글은 GitHub App을 통해 자동으로 작성되었습니다.

🔢 API 사용량 (gpt-5-nano)
요청 입력 토큰 출력 토큰 합계 비용
1 2,912 413 3,325 $0.000311
2 1,001 111 1,112 $0.000094
3 1,828 227 2,055 $0.000182
4 1,828 210 2,038 $0.000175
5 1,858 253 2,111 $0.000194
합계 9,427 1,214 10,641 $0.000957

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Two Pointers, Dynamic Programming, Hash Map / Hash Set
  • 설명: 왼쪽 곱과 오른쪽 곱을 각각 누적하며 각 위치의 곱을 구하는 방식으로 보통 두 포인터 혹은 누적 곱 패턴으로 해석됩니다. DP적 아이디어로 부분 결과를 합쳐 최종 값을 계산하며 추가 저장 공간을 활용합니다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(n) O(1)

피드백: 추가 배열 없이 결과를 만들기 위해 두 순회를 이용한다.

개선 제안: 현재 구현이 적절해 보입니다.

Comment thread valid-anagram/j2h30728.ts

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Hash Map / Hash Set, Two Pointers
  • 설명: 두 문자열의 문자를 해시맵으로 카운트하여 비교하는 방식으로, 한 번에 두 문자열의 문자를 서로 비교하고 전체 차이를 확인한다. 선형 시간, 선형 공간 복잡도로 구현되어 있다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(n) O(k)

피드백: 한 번의 순회와 맵 업데이트로 비교를 수행한다.

개선 제안: 현재 구현이 적절해 보입니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Binary Search, Depth-First Search
  • 설명: BST 유효성 검사에서 재귀로 트리를 탐색하며 각 노드의 값이 허용된 범위(min,max) 안에 있는지 확인합니다. 좌우 자식에 대해 범위를 점진적으로 좁혀 가는 방식은 Binary Search 및 DFS의 조합으로 볼 수 있습니다.

📊 시간/공간 복잡도 분석

복잡도
Time O(n)
Space O(h)

피드백: 각 노드를 방문하며 최소/최대 후보를 전달하는 방식.

개선 제안: 현재 구현이 적절해 보입니다.

💡 풀이에 시간/공간 복잡도를 주석으로 남겨보세요!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Backtracking
  • 설명: 가능한 수들의 조합을 재귀적으로 탐색하며 목표 합계에 도달할 때까지 후보를 추가/제외하는 방식으로 해를 구한다. 중간에 남은 합이 음수면 가지치기를 하고, 현재 선택을 되돌리며 모든 조합을 탐색한다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(k * n^k) O(k * n^k)
Space O(k) O(k)

피드백: 백트래킹으로 모든 조합을 탐색하며, 각 재귀에서 남은 합을 감소시키고 현재 경로를 관리합니다.

개선 제안: 현재 구현이 일반적인 해법에 부합합니다.

Comment thread decode-ways/j2h30728.ts

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Dynamic Programming
  • 설명: 문제의 해를 부분문제의 해의 합으로 구하는 전형적인 DP 패턴이며, 두 가지 경우를 합산하여 전체 해를 얻는 방식이다. 문자열의 부분 문자열을 상태로 삼아 중복 없이 계산한다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(n) O(n)

피드백: 이전 두 상태만 필요하므로 DP 배열을 사용해 풀이가 안정적입니다.

개선 제안: 현재 구현이 적절해 보입니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Dynamic Programming, Greedy
  • 설명: 연속 부분 배열의 합을 최대화하는 문제로, 부분해의 최댓값을 현재까지의 최댓값과 현재 값의 합으로 갱신하는 방식은 DP의 전형적인 형태이며, Kadane 알고리즘의 아이디어로도 설명됩니다. Greedy 성격의 선택도 포함됩니다.

📊 시간/공간 복잡도 분석

ℹ️ 이 파일에는 2가지 풀이가 포함되어 있어 각각 분석합니다.

풀이 1: maxSubArray1 — Time: ✅ O(n) → O(n) / Space: ✅ O(n) → O(n)
유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(n) O(n)

피드백: Kadane 방식과 유사한 DP 접근으로 각 위치의 최댓값을 유지합니다.

개선 제안: 현재 구현이 적절해 보입니다.

풀이 2: maxSubArray2 — Time: ✅ O(n) → O(n) / Space: ✅ O(1) → O(1)
유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(1) O(1)

피드백: 가장 일반적인 최적해로, 메모리 사용을 줄인 버전입니다.

개선 제안: 현재 구현이 적절해 보입니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Bit Manipulation, Greedy, Divide and Conquer
  • 설명: 주어진 코드는 입력 n의 이진 자리수를 하나씩 확인해 비트를 세는 방식으로 1의 개수를 구한다. 비트 수를 순차적으로 처리하는 패턴과 간단한 수학적 분할을 이용하는 점에서 비트 조작 및 단순 루프 기반 접근으로 보인다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n) O(number of bits)
Space O(1) O(1)

피드백: 반복을 통해 비트 수를 직접 셉니다. 비트 연산으로도 최적화 가능.

개선 제안: 현재 구현이 적절해 보입니다.

@j2h30728 j2h30728 moved this from Solving to In Review in 리트코드 스터디 8기 Jul 11, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Two Pointers, Hash Map / Hash Set
  • 설명: 문자열 전처리 후 양 끝에서 같은지 비교하는 방식으로 가운데로 이동하며 비교하는 패턴으로, 두 포인터가 양끝에서 만나는 지점까지 진행합니다. 이때 불필요한 문자 제거와 소문자화 과정이 포함된 뒤 대칭 여부를 확인합니다.

📊 시간/공간 복잡도 분석

유저 분석 실제 분석 결과
Time O(n) O(n)
Space O(n) O(n)

피드백: 문자 필터링과 문자열 재구성 후 대칭 비교로 해결합니다.

개선 제안: 현재 구현이 적절해 보입니다.

@alphaorderly alphaorderly left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전반적으로 깔끔하게 잘 해결하신것 같습니다!

@parkhojeong parkhojeong left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다! 전체적으로 깔끔하게 잘 풀어주신 거 같네요.

커멘트 남겨보았습니다. valid-palindrome 은 통과가 안되는 상태라 request-changed 로 남겨두었습니다!

let sum = 0;

while (n > 0) {
sum += Math.abs(n % 2);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

abs 없이 sum += n % 2; 만 해줘도 될 거 같습니다!

Comment on lines +6 to +11
let string = "";
for (const ch of s) {
if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z")) {
string += ch.toLowerCase();
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

조건이 alphanumeric 인데 알파벳만 처리해서 테스트 통과가 안되네요! 다시 풀어주셔야 할 거 같아요~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

3 participants