Skip to content

[lkhoony] WEEK 06 Solutions (테스트용 PR 입니다. 리뷰 불가)#2544

Closed
lkhoony wants to merge 12 commits intoDaleStudy:mainfrom
lkhoony:main
Closed

[lkhoony] WEEK 06 Solutions (테스트용 PR 입니다. 리뷰 불가)#2544
lkhoony wants to merge 12 commits intoDaleStudy:mainfrom
lkhoony:main

Conversation

@lkhoony
Copy link
Copy Markdown

@lkhoony lkhoony commented Apr 17, 2026

해당 PR은 AI 분석 기능 추가를 위한 테스트 PR 입니다.(리뷰 불가)

답안 제출 문제

  • design-add-and-search-words-data-structure
  • find-minimum-in-rotated-sorted-array
  • 문제 3

작성자 체크 리스트

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

검토자 체크 리스트

Important

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

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

@dalestudy
Copy link
Copy Markdown
Contributor

dalestudy bot commented Apr 17, 2026

⚠️ Week 설정이 누락되었습니다

프로젝트에서 Week를 설정해주세요!

설정 방법

  1. PR 우측의 Projects 섹션에서 리트코드 스터디 옆 드롭다운(▼) 클릭
  2. 현재 주차를 선택해주세요 (예: Week 14(current) 또는 Week 14)

📚 자세한 가이드 보기


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

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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Trie, Backtracking
  • 설명: 이 코드는 Trie 구조를 이용해 단어 저장과 검색을 수행하며, '.' 와일드카드 검색 시 백트래킹을 활용합니다. 효율적인 문자열 검색을 위해 트리와 재귀 탐색을 결합한 패턴입니다.

@dalestudy
Copy link
Copy Markdown
Contributor

dalestudy bot commented Apr 17, 2026

📊 lkhoony 님의 학습 현황

이번 주 제출 문제

문제 난이도 유형 분석
design-add-and-search-words-data-structure Medium ✅ 의도한 유형
find-minimum-in-rotated-sorted-array Medium ✅ 의도한 유형
graph-valid-tree Medium ✅ 의도한 유형

누적 학습 요약

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

문제 풀이 현황

카테고리 진행도 완료
Array □□□□□□□ 0 / 36 ← 아직 시작 안 함
Backtracking □□□□□□□ 0 / 3 ← 아직 시작 안 함
Binary Search □□□□□□□ 0 / 4 ← 아직 시작 안 함
Binary Search Tree □□□□□□□ 0 / 3 ← 아직 시작 안 함
Binary Tree □□□□□□□ 0 / 11 ← 아직 시작 안 함
Bit Manipulation □□□□□□□ 0 / 5 ← 아직 시작 안 함
Breadth-First Search □□□□□□□ 0 / 13 ← 아직 시작 안 함
Bucket Sort □□□□□□□ 0 / 1 ← 아직 시작 안 함
Combinatorics □□□□□□□ 0 / 1 ← 아직 시작 안 함
Counting □□□□□□□ 0 / 1 ← 아직 시작 안 함
Data Stream □□□□□□□ 0 / 1 ← 아직 시작 안 함
Depth-First Search □□□□□□□ 0 / 18 ← 아직 시작 안 함
Design □□□□□□□ 0 / 5 ← 아직 시작 안 함
Divide and Conquer □□□□□□□ 0 / 6 ← 아직 시작 안 함
Dynamic Programming □□□□□□□ 0 / 18 ← 아직 시작 안 함
Graph Theory □□□□□□□ 0 / 5 ← 아직 시작 안 함
Greedy □□□□□□□ 0 / 4 ← 아직 시작 안 함
Hash Function □□□□□□□ 0 / 1 ← 아직 시작 안 함
Hash Table □□□□□□□ 0 / 16 ← 아직 시작 안 함
Heap (Priority Queue) □□□□□□□ 0 / 4 ← 아직 시작 안 함
Linked List □□□□□□□ 0 / 6 ← 아직 시작 안 함
Math □□□□□□□ 0 / 5 ← 아직 시작 안 함
Matrix □□□□□□□ 0 / 7 ← 아직 시작 안 함
Memoization □□□□□□□ 0 / 2 ← 아직 시작 안 함
Merge Sort □□□□□□□ 0 / 1 ← 아직 시작 안 함
Prefix Sum □□□□□□□ 0 / 2 ← 아직 시작 안 함
Quickselect □□□□□□□ 0 / 1 ← 아직 시작 안 함
Recursion □□□□□□□ 0 / 3 ← 아직 시작 안 함
Simulation □□□□□□□ 0 / 1 ← 아직 시작 안 함
Sliding Window □□□□□□□ 0 / 3 ← 아직 시작 안 함
Sorting □□□□□□□ 0 / 11 ← 아직 시작 안 함
Stack □□□□□□□ 0 / 2 ← 아직 시작 안 함
String □□□□□□□ 0 / 19 ← 아직 시작 안 함
String Matching □□□□□□□ 0 / 1 ← 아직 시작 안 함
Topological Sort □□□□□□□ 0 / 2 ← 아직 시작 안 함
Tree □□□□□□□ 0 / 11 ← 아직 시작 안 함
Trie □□□□□□□ 0 / 4 ← 아직 시작 안 함
Two Pointers □□□□□□□ 0 / 10 ← 아직 시작 안 함
Union-Find □□□□□□□ 0 / 4 ← 아직 시작 안 함

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

🔢 API 사용량 (gpt-4.1-nano)
요청 입력 토큰 출력 토큰 합계 비용
#1 1,544 101 1,645 $0.000195

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
  • 설명: 이 코드는 회전된 정렬 배열에서 최소값을 찾기 위해 이진 탐색 방식을 사용합니다. 중간값과 끝값을 비교하여 탐색 범위를 좁히는 방식이 핵심입니다.

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.

🏷️ 알고리즘 패턴 분석

  • 패턴: DFS
  • 설명: 이 코드는 그래프의 연결성과 사이클 유무를 DFS로 탐색하여 판단하는 방식으로, DFS 패턴에 속합니다.

@dalestudy
Copy link
Copy Markdown
Contributor

dalestudy bot commented Apr 17, 2026

📊 시간/공간 복잡도 분석

design-add-and-search-words-data-structure

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

피드백: 이 구현은 Trie 구조를 활용하여 검색 시 '.' 와일드카드에 대해 DFS로 처리하는 방식으로, 시간 복잡도는 단어 길이 m에 비례하며, 공간 복잡도는 저장하는 단어 수 n과 단어 길이 m에 따라 결정됩니다. 효율적이고 적절한 구현입니다.

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

find-minimum-in-rotated-sorted-array

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

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

피드백: 이 방법은 배열 전체를 펼쳐서 Math.min을 호출하므로 시간 복잡도는 O(n)이고, 공간 복잡도도 배열 크기만큼의 스택 또는 호출 스택을 사용하여 O(n)입니다. 간단하지만 비효율적입니다.

개선 제안: 이 방법은 배열이 크면 성능이 저하될 수 있으니, 이진 탐색을 활용하는 방법으로 개선하는 것을 고려해볼 만합니다.

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

피드백: 이 구현은 배열을 한 번 순회하며 최소값을 찾는 방식으로, 시간 복잡도는 O(n)이고 공간 복잡도는 O(1)입니다. 간단하고 직관적입니다.

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

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

피드백: 이진 탐색을 이용하여 회전된 배열의 최소값을 찾는 방법은 시간 복잡도를 O(log n)으로 줄여 효율적입니다. 구현도 적절합니다.

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

graph-valid-tree

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

피드백: 이 구현은 인접 리스트와 DFS를 활용하여 그래프의 유효성을 검사하는 표준 방법으로, 시간과 공간 복잡도는 노드와 간선 수에 비례합니다. 효율적이고 적절합니다.

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


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

@jylee2033 jylee2033 self-requested a review April 17, 2026 19:00
Copy link
Copy Markdown
Contributor

@jylee2033 jylee2033 left a comment

Choose a reason for hiding this comment

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

덕분에 저번 주에 풀었던 문제들을 다시 리뷰할 수 있었어요!
JavaScript가 익숙하지 않아서 AI의 도움을 받아 코드를 살펴봤는데 find-minimum-in-rotated-sorted-array 문제의 시간 복잡도 주석은 한 번 다시 확인해보시면 좋을 것 같아요!
실제 구현은 더 효율적인데 주석이 더 높게 적혀 있는 것 같았습니다.
다양한 풀이를 고민하고 시도하신 과정이 보여서 인강 깊었어요!
이번 주도 수고 많으셨어요 😊

@jylee2033
Copy link
Copy Markdown
Contributor

@DaleStudy 리뷰해줘

@dalestudy
Copy link
Copy Markdown
Contributor

dalestudy bot commented Apr 17, 2026

전체적으로 코드의 가독성과 구조는 잘 정리되어 있으며, 각 문제에 대한 접근법도 적절합니다. 다만, 개선할 수 있는 부분과 추가 피드백 드리자면:

  1. 시간/공간 복잡도 명시

    • find-minimum-in-rotated-sorted-arrayfindMin 함수에 대한 복잡도는 적절히 기술되어 있으나, search 함수의 내부 반복문은 이진 탐색이라 O(log n)이 맞습니다. 명확히 명시하는 것이 좋겠습니다.
    • WordDictionarysearch는 최악의 경우 모든 브랜치를 탐색하므로 O(m * 26^d) (d는 문자열 길이, 알파벳 수) 가능성도 고려할 수 있음을 참고하세요.
  2. 알고리즘 개선 제안

    • findMin에서 이진 탐색을 통한 최적화는 매우 적절하며, 특히 rotated array 문제에 강력합니다. 다만, Math.min(...nums)는 큰 배열에서는 O(n)인데, 명시한 것처럼 스프레드 연산이 스택 오버플로우 가능성을 유의하세요. 대신 이진 탐색 방식이 훨씬 효율적입니다.
    • search 메서드에서 '.' 와일드카드 처리도 깔끔하며, 재귀적 DFS 방식이 적합합니다.
  3. 가독성 및 스타일

    • 들여쓰기와 변수 명이 일관적이며, 함수와 변수명도 직관적입니다.
    • WordDictionary.prototype._search의 이름 앞에 언더스코어를 붙인 것은 내부 메서드임을 나타내어 좋습니다.
    • 주석도 적절하며, 복잡도 표기를 명확히 해주셨습니다.
  4. 추가 제안

    • findMin의 이진 탐색 방식은 거의 최적이지만, 배열이 이미 정렬된 상태임을 활용하는 더 특화된 방법이 있으나, 현재 구현은 충분히 적절합니다.
    • graph-valid-tree의 구현도 깔끔하며, DFS로 사이클 체크와 연결성 체크를 잘 수행하고 있습니다.

요약하면, 전체적으로 좋은 구조와 명확한 코드입니다. 복잡도 표기를 조금 더 명확히 하고, 스프레드 연산자의 주의점을 언급하면 더 좋겠습니다. 계속해서 좋은 코드와 접근법 기대합니다!

@lkhoony lkhoony changed the title [lkhoony] WEEK 06 Solutions [lkhoony] WEEK 06 Solutions (테스트용 PR 입니다. 리뷰 불가) Apr 18, 2026
@sounmind sounmind closed this Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Solving

Development

Successfully merging this pull request may close these issues.

3 participants