Skip to content

[hyeri0903] WEEK 15 Solutions#2635

Open
hyeri0903 wants to merge 4 commits into
DaleStudy:mainfrom
hyeri0903:main
Open

[hyeri0903] WEEK 15 Solutions#2635
hyeri0903 wants to merge 4 commits into
DaleStudy:mainfrom
hyeri0903:main

Conversation

@hyeri0903

@hyeri0903 hyeri0903 commented Jun 9, 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.

🏷️ 알고리즘 패턴 분석

  • 패턴: BFS
  • 설명: 이 코드는 큐를 이용한 너비 우선 탐색(BFS)로 트리의 각 레벨별 노드를 순회하며 결과를 리스트에 저장하는 방식입니다.

📊 시간/공간 복잡도 분석

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

피드백: 큐를 이용한 BFS로 모든 노드를 한 번씩 방문하므로 시간 복잡도는 노드 수에 비례하는 O(n)입니다. 공간 복잡도는 큐와 결과 리스트에 전체 노드가 저장되기 때문에 O(n)입니다.

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

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

@dalestudy

dalestudy Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

📊 hyeri0903 님의 학습 현황

이번 주 제출 문제

문제 난이도 유형 분석
construct-binary-tree-from-preorder-and-inorder-traversal Medium ⚠️ 유형 불일치
longest-palindromic-substring Medium ✅ 의도한 유형
rotate-image Medium ✅ 의도한 유형
subtree-of-another-tree Easy ✅ 의도한 유형

누적 학습 요약

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

문제 풀이 현황

카테고리 진행도 완료
Array ■■■■■■■ 10 / 10 (Medium 7, Easy 3)
Binary ■■■■■■■ 5 / 5 (Easy 4, Medium 1)
Dynamic Programming ■■■■■■■ 11 / 11 (Easy 1, Medium 10)
Linked List ■■■■■■■ 6 / 6 (Easy 3, Hard 1, Medium 2)
Heap ■■■■■■■ 3 / 3 (Hard 2, Medium 1)
String ■■■■■■□ 9 / 10 (Medium 5, Hard 1, Easy 3)
Graph ■■■■■□□ 6 / 8 (Medium 6)
Matrix ■■■■■□□ 3 / 4 (Medium 3)
Tree ■■■■■□□ 10 / 14 (Medium 5, Hard 2, Easy 3)
Interval ■■■■□□□ 3 / 5 (Medium 3)

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

🔢 API 사용량 (gpt-4.1-nano)
요청 입력 토큰 출력 토큰 합계 비용
1 3,540 212 3,752 $0.000439
2 644 35 679 $0.000078
3 1,290 71 1,361 $0.000157
4 2,003 109 2,112 $0.000244
5 2,489 136 2,625 $0.000303
합계 9,966 563 10,529 $0.001222

@github-actions github-actions Bot added the java label Jun 9, 2026
@DaleStudy DaleStudy deleted a comment from dalestudy Bot Jun 9, 2026
@DaleStudy DaleStudy deleted a comment from dalestudy Bot Jun 9, 2026
@DaleStudy DaleStudy deleted a comment from dalestudy Bot Jun 9, 2026
@DaleStudy DaleStudy deleted a comment from dalestudy Bot Jun 9, 2026
@hwi-middle hwi-middle self-requested a review June 11, 2026 14:03

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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Divide and Conquer
  • 설명: 이 코드는 전위(preorder)와 중위(inorder) 순회 배열을 이용해 재귀적으로 트리를 분할하며 구성하는 방식으로, 분할 정복 패턴을 따릅니다.

📊 시간/공간 복잡도 분석

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

피드백: 현재 구현은 inorder 배열에서 루트 노드 위치를 찾기 위해 선형 탐색을 수행하여, 최악의 경우 전체 배열 크기만큼 반복하므로 시간 복잡도가 O(n^2)입니다. 이를 개선하려면 inorder 값의 인덱스를 미리 맵에 저장하여 O(1) 탐색으로 변경하는 방법이 있습니다.

개선 제안: 고려해볼 만한 대안: inorder 값의 인덱스를 미리 해시맵에 저장하여 탐색 시간을 O(1)로 줄이면 전체 시간 복잡도를 O(n)으로 개선할 수 있습니다.

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

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, Expand around center
  • 설명: 이 코드는 문자열의 양쪽으로 확장하며 팰린드롬을 찾는 방식으로, 두 포인터를 활용하는 패턴과 확장 중심 탐색을 사용합니다.

📊 시간/공간 복잡도 분석

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

피드백: 이 구현은 각 중심마다 확장하는 방식으로, 최대 O(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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Two Pointers, Matrix Transposition
  • 설명: 이 코드는 행을 뒤집기 위해 양 끝 포인터를 이동하는 Two Pointers 패턴과, 대각선 기준 행렬을 뒤집는 행렬 전치(transpose)를 활용하여 회전하는 방식을 사용합니다.

📊 시간/공간 복잡도 분석

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

피드백: 이 방법은 두 단계(전치와 행 뒤집기)를 통해 in-place로 90도 회전을 수행하며, 시간 복잡도는 행렬의 모든 원소를 한 번씩 방문하므로 O(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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Recursive
  • 설명: 이 코드는 재귀 호출을 이용하여 트리의 모든 노드를 탐색하며, 서브트리인지 여부를 재귀적으로 판단하는 방식입니다. 재귀는 트리 구조 탐색에 자주 사용됩니다.

📊 시간/공간 복잡도 분석

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

피드백: 이 구현은 각 노드마다 isSameTree를 호출하여, 최악의 경우 모든 노드에 대해 서브트리 검사를 수행하므로 시간 복잡도는 O(nm)입니다. 공간은 재귀 호출 스택에 따라 달라집니다.

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

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

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

깔끔하게 풀이하셨네요. 리뷰 시점에는 Alien Dictionary가 아직 해결 전인데, 미리 Approve 해두겠습니다. 마지막까지 수고 많으셨습니다!

- 길이 = 1 이면 바로 return
Palindrome은 substring 기준이라 전체 문자열 길이와 무관하게 홀수/짝수 케이스가 모두 존재할 수 있기 때문에, 두 경우를 모두 확인해야 합니다.

Time: O(n²) -> palindrome method 에서 최대 n 번 돌 수 있으므로

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.

저는 이 문제 풀지 못하고 Editorial을 참고했는데, O(N)으로 풀 수 있는 마나커 알고리즘이 소개되어 있습니다. 흥미 있으시면 이 쪽도 살펴보세요! 개인적으로는 어렵더라구요...

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.

O(n) 풀이 방법도 살펴봐야겠네요. 피드백 감사합니다!
@hwi-middle 님도 수고 많으셨습니다~!

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.

2 participants