Skip to content

[sangbeenmoon] WEEK 04 Solutions - #2756

Merged
sangbeenmoon merged 13 commits into
DaleStudy:mainfrom
sangbeenmoon:main
Jul 19, 2026
Merged

[sangbeenmoon] WEEK 04 Solutions#2756
sangbeenmoon merged 13 commits into
DaleStudy:mainfrom
sangbeenmoon:main

Conversation

@sangbeenmoon

@sangbeenmoon sangbeenmoon commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

답안 제출 문제

작성자 체크 리스트

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

검토자 체크 리스트

Important

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

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

@dalestudy

dalestudy Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

📊 sangbeenmoon 님의 학습 현황

이번 주 제출 문제

문제 난이도 유형 분석
coin-change Medium ⚠️ 유형 불일치
find-minimum-in-rotated-sorted-array Medium ✅ 의도한 유형
word-search Medium ✅ 의도한 유형

누적 학습 요약

  • 풀이한 문제: 8 / 75개
  • 이번 주 유형 일치율: 67% (3문제 중 2문제 일치)

문제 풀이 현황

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

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

🔢 API 사용량 (gpt-5-nano)
요청 입력 토큰 출력 토큰 합계 비용
1 1,899 111 2,010 $0.000139

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, Hash Map / Hash Set
  • 설명: 동전 교환 문제의 최소 동전 개수를 구하기 위해 하위 문제를 재귀적으로 해결하고, 결과를 메모이제이션으로 저장하는 DP 접근이며, 보조적으로 해시맵을 사용해 이미 계산한 타깃을 저장합니다.

📊 시간/공간 복잡도 분석

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

풀이 1: Solution.coinChange (first implementation) — Time: O(amount * len(coins)) / Space: O(amount)
복잡도
Time O(amount * len(coins))
Space O(amount)

피드백: 점화식을 재귀로 풀고 캐시를 사용해 중복 계산을 줄였지만 amount에 비례한 재귀 깊이가 필요하며, 최악의 경우 지수적 탐색을 피하기 어렵다.

개선 제안: 동적계획법의 순수한 바텀업(Bottom-Up) 접근이나 BFS 기반 풀이로 시간복잡도를 개선할 수 있다.

풀이 2: Solution.coinChange (second implementation) — Time: O(amount * len(coins)) / Space: O(amount)
복잡도
Time O(amount * len(coins))
Space O(amount)

피드백: 초기화된 memo에 목표 금액과 관련된 중간 결과를 저장해 중복 계산을 줄인다.

개선 제안: 반복적 DP(Bottom-Up)로 구현하면 함수 재귀 호출 오버헤드를 줄일 수 있다.

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

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
  • 설명: 회전된 정렬 배열에서 최솟값을 이진 탐색으로 찾는 방식으로, 중간 인덱스와 양 끝의 값 비교를 통해 탐색 범위를 반으로 축소합니다.

📊 시간/공간 복잡도 분석

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

풀이 1: Solution.findMin (first solution) — Time: O(log n) / Space: O(1)
복잡도
Time O(log n)
Space O(1)

피드백: 마지막 종료 조건이 명시적이지 않으나 일반적인 회전 배열 이진 탐색 패턴과 일치한다.

개선 제안: 특정 예외 케이스(중간값이 경계에 위치하는 경우)에 대한 명확한 처리 주석을 추가하면 가독성이 높아진다.

풀이 2: Solution.findMin (second solution) — Time: O(log n) / Space: O(1)
복잡도
Time O(log n)
Space 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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Depth-First Search, Backtracking
  • 설명: 단어의 각 문자 위치를 탐색하면서 방향을 따라 방문 여부를 관리하는 재귀 DFS와, 실패 지점에서 다시 이전 상태로 되돌리는 백트래킹 패턴이 핵심이다.

📊 시간/공간 복잡도 분석

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

풀이 1: Solution.exist (첫 번째 구현) — Time: O(m * n * 4^L) / Space: O(m * n)
복잡도
Time O(m * n * 4^L)
Space O(m * n)

피드백: 백트래킹과 방문 기록을 통해 중복 경로를 제거하지만 최악의 경우 지수적 시간 복잡도가 발생할 수 있다.

개선 제안: 효율을 위해 감소된 상태 공간에서의 가지치기 조건 강화와 시간 복잡도 분석 명시가 필요하다.

풀이 2: Solution.exist (두 번째 구현) — Time: O(m * n * 4^L) / Space: O(m * n)
복잡도
Time O(m * n * 4^L)
Space O(m * n)

피드백: 각 위치에서 시작해 DFS를 진행하고 종료 조건을 명확히 처리한다.

개선 제안: 반복적 구현이나 최적화된 가지치기, 사전 인덱스 매핑 등을 통해 성능을 개선할 수 있다.

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

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

수고하셨습니다.

Comment on lines +32 to +34
left = 0
right = len(nums) - 1
mid = (left + right) // 2

@parkhojeong parkhojeong Jul 18, 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.

이 부분 mid 할당은 중복으로 보여서 지워도 될 거 같습니다.

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.

요거 돌려보니 3000ms 정도 나오는데 최적화 좀더 해보셔도 좋을 거 같습니다.

Comment on lines +36 to +39
while left < right:
mid = (left + right) // 2

if nums[mid] > nums[right]:

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.

탐색 중간에 정답인 경우 미리 리턴해보도록 해보셔도 좋을 거 같습니다.

@sangbeenmoon
sangbeenmoon merged commit 3aef87b into DaleStudy:main Jul 19, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from In Review to Completed in 리트코드 스터디 8기 Jul 19, 2026
okyungjin pushed a commit to okyungjin/leetcode-study that referenced this pull request Jul 20, 2026
* solved same-tree.

* solved top-k-frequent-elements.

* remove outdated files.

* LCS, house-robber.

* week2.

* week3.

* week4.

---------

Co-authored-by: sangbeenmoon <moon.sb@navercorp.com>
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