Skip to content

[parkhojeong] WEEK 03 Solutions#2727

Merged
parkhojeong merged 5 commits into
DaleStudy:mainfrom
parkhojeong:week3
Jul 11, 2026
Merged

[parkhojeong] WEEK 03 Solutions#2727
parkhojeong merged 5 commits into
DaleStudy:mainfrom
parkhojeong:week3

Conversation

@parkhojeong

@parkhojeong parkhojeong commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

답안 제출 문제

작성자 체크 리스트

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

검토자 체크 리스트

Important

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

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

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, Depth-First Search, Greedy
  • 설명: DFS로 모든 조합을 탐색하며 후보를 재귀적으로 시도하는 백트래킹 형태의 풀이입니다. 목표 합에 맞는 조합을 찾고, 후보를 점진적으로 축소해 불필요한 경로를 제거합니다.

📊 시간/공간 복잡도 분석

복잡도
Time O(k * d^k)
Space O(k)

피드백: 정확히는 각 재귀에서 남은 후보군의 길이에 비례하여 탐색이 늘어나며 중복 제거를 위해 정렬 및 증가하는 방향으로 탐색한다.

개선 제안: 현재 구현은 불필요한 중복 분기를 줄이고, 가지치기와 메모이제이션을 도입하면 속도가 개선될 여지가 있습니다.

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

@dalestudy

dalestudy Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

📊 parkhojeong 님의 학습 현황

이번 주 제출 문제

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

누적 학습 요약

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

문제 풀이 현황

카테고리 진행도 완료
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 1,962 263 2,225 $0.000203

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, Hash Map / Hash Set
  • 설명: 코드는 문자열을 분리해 부분 문제로 나누고 각 부분에 대해 카운트를 곱하는 방식으로 풀이합니다. 부분 문제를 합치며 최댓값/경우의 수를 누적하는 DP 특성과, 0 처리 시 예외를 조기에 판단하는 점에서 Greedy 성향도 보입니다.

📊 시간/공간 복잡도 분석

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

피드백: 0 처리와 구간 분할 로직이 꼼꼼하지만, 동적계획법으로 한 번에 해결하는 방법이 더 명확하고 안전하다.

개선 제안: 현재 구현 대신 DP 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, Sliding Window
  • 설명: 코드는 부분배열의 합의 최댓값을 구하려고 여러 구간을 합치며 누적합을 갱신하는 흐름이 있으며, 배열의 연속 구간 합을 이용해 최댓값을 찾는 구조가 담겨 있습니다. 또한 일부 연산에서 각 인덱스의 합을 바로 계산해 다음 위치로 전달하는 방식이 패턴과 맞닿아 있습니다.

📊 시간/공간 복잡도 분석

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

피드백: 처음 구현은 모든 값의 최댓값을 추적한 뒤 부분 구간을 분해하는 방식으로 시작하고, 이후 불필요한 연산이 있다.

개선 제안: 불필요한 0 제거와 복잡한 배열 재구성을 제거하고 Kadane의 간단한 형태로 재구현하는 것이 좋습니다.

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

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
  • 설명: 주어진 코드는 정수의 이진 표현에서 1의 개수를 세는 연산으로, 비트 관련 연산을 직접 다루는 Bit Manipulation 패턴의 대표 예시입니다. while 루프를 이용해 각 비트를 확인하고 1의 개수를 누적합니다.

📊 시간/공간 복잡도 분석

복잡도
Time O(k)
Space O(1)

피드백: 루프가 n 비트에 대해 실행되므로 입력 정수의 비트 길이에 비례한다.

개선 제안: n & (n-1) 기법으로 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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Two Pointers, Hash Map / Hash Set
  • 설명: 문자열을 정규화한 뒤 양쪽에서 비교하는 방식으로 대칭 여부를 확인한다. 명시적 포인터 두 개로 순회하는 것은 아니지만, 두 끝에서 비교하는 아이디어와 역순과의 비교로 Palindrome 판단 패턴에 해당한다.

📊 시간/공간 복잡도 분석

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

피드백: 대소문자 무시 및 비알파벳 제거에 초점을 맞춘 간단한 전처리 구현이다.

개선 제안: 공간을 절약하려면 투 포인터를 사용해 양쪽에서 직접 비교하는 방식으로 전처리 문자열을 제거하지 않고 구현하는 것이 좋습니다.

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

@JAEKWANG97 JAEKWANG97 self-requested a review July 11, 2026 00:16
j = i + 1
elif s[i] == "0":
splited_arr.append(s[i + 1:j])
i -= 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.

0이 들어가는 경우를 먼저 나누고 문자열을 구간별로 분리해서 경우의 수를 계산하신 흐름을 잘 봤습니다! 제가 생각한 DP 방식과 달라서 이런 식으로도 풀 수 있다는 걸 배웠어요!

@parkhojeong parkhojeong Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

조건 중에 0이 중요한 부분이더라구요. 0을 기준으로 입력 값을 쪼개준 뒤, 각 경우의 수를 구해 곱해주도록 해보았습니다 :)
dp 방식은 생각 못헀는데 풀어주신 거 보고 배울 수 있었습니다!

arr[-2] = arr[-1] + arr[-2]
arr = arr[:-1]

max_val = max(max_val, arr[0])

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.

연속된 양수와 음수를 먼저 묶은 다음 양쪽 구간을 합쳐가며 최댓값을 찾으셨네요! 제가 풀었던 점화식 방식과 달라서 코드를 따라가며 비교해볼 수 있었습니다!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

연속된 합에 대한 문제라 + - + - + - ... 형태로 데이터를 정리를 먼저 해봤어요. 이후 최대값을 그리디 방식으로 구하는 걸로 해결해봤습니다 :)

@JAEKWANG97 JAEKWANG97 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.

전체적으로 잘 봤습니다! 문제마다 풀이 흐름이 잘 드러나서 코드를 따라가기 좋았습니다! 특히 Decode Ways와 Maximum Subarray는 제가 풀었던 방식과 달라서 다른 접근을 배울 수 있었습니다! 수고하셨습니다!

@parkhojeong parkhojeong merged commit 2c62b12 into DaleStudy:main Jul 11, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from In Review to Completed in 리트코드 스터디 8기 Jul 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Completed

Development

Successfully merging this pull request may close these issues.

2 participants