Skip to content

[xeulbn] WEEK 03 Solutions#2729

Open
xeulbn wants to merge 1 commit into
DaleStudy:mainfrom
xeulbn:main
Open

[xeulbn] WEEK 03 Solutions#2729
xeulbn wants to merge 1 commit into
DaleStudy:mainfrom
xeulbn:main

Conversation

@xeulbn

@xeulbn xeulbn commented Jul 11, 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
  • 설명: 깊이 우선 탐색으로 후보들을 재귀적으로 시도하고 가지를 잘라 결과를 모으는 방식으로, 합이 맞는 조합을 찾는 전형적인 Backtracking 패턴입니다.

📊 시간/공간 복잡도 분석

복잡도
Time O(k * n!)
Space O(k + n)

피드백: 깊이 우선 탐색으로 모든 조합을 탐색합니다. 재귀 깊이와 현재 경로 저장 공간이 주요 차지에 해당하며, 모든 후보를 차례로 시도합니다.

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

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

@dalestudy

dalestudy Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

📊 xeulbn 님의 학습 현황

이번 주 제출 문제

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

누적 학습 요약

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

문제 풀이 현황

카테고리 진행도 완료
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,818 235 2,053 $0.000185

Comment thread decode-ways/xeulbn.java

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
  • 설명: 문자열을 한 칸씩 보며 현재 문자 또는 두 문자 조합의 유효성 여부에 따라 부분해를 누적하는 방식으로 최적해를 구한다. 이는 인덱스 k에서의 해를 k-1, k-2의 해의 합으로 표현하는 전형적인 DP 패턴이다.

📊 시간/공간 복잡도 분석

복잡도
Time O(n)
Space 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.

🏷️ 알고리즘 패턴 분석

  • 패턴: Greedy, Dynamic Programming
  • 설명: 해당 코드는 Kadane 알고리즘으로 연속 부분합을 최적화하는 방식으로 구현되어 있으며, 매 위치에서 부분합을 현재 값과 비교해 더 큰 쪽을 선택하는 그리디 성격을 보인다. 또한 부분해의 최댓값을 누적 관리하므로 DP의 형태로도 해석된다.

📊 시간/공간 복잡도 분석

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

피드백: 현재 구현은 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의 개수를 세는 과정으로 비트 연산을 활용하는 패턴이다. 주어진 코드에서 비트를 오른쪽으로 시프트하며 최하위 비트를 확인한다.

📊 시간/공간 복잡도 분석

복잡도
Time O(b)
Space O(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, Greedy, Hash Map / Hash Set
  • 설명: 문자열의 좌우를 포인터로 이동하며 유효문자인지 검사하고 대소문자를 맞춰 비교하는 방식으로 회문 여부를 판단한다. 좌우 포인터를 활용하는 전형적인 Two Pointers 패턴이며, 부분 문자열 선별과 비교 로직으로 간단한 최적화를 적용한다.

📊 시간/공간 복잡도 분석

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

피드백: 문자열의 양 끝에서 유효 문자를 건너뛰고 비교하는 전형적인 풀이

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

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

@xeulbn xeulbn moved this from Solving to In Review in 리트코드 스터디 8기 Jul 11, 2026
@sonshn sonshn self-requested a review July 11, 2026 03:28

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

시간 복잡도나 공간 복잡도도 고려하셔서 최적의 방법으로 풀이하셨네요! 저도 Java로 준비하고 있는데, 덕분에 많이 배워갑니다. 이번 주도 고생많으셨어요!


return count;
}
}

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.

비트 연산을 활용해서 해결하셨군요! 찾아보니 이런 것을 Hamming이라고 하는 것 같네요


return true;
}
}

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.

저도 정확히 똑같이 풀었습니다! 사실 배열을 활용할까 했었는데, 투 포인터를 사용하는 것이 문제 의도랑 맞는 것 같네요

current.remove(current.size() - 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.

백트래킹으로 해결하셨군요...! 많이 배워갑니다 😊

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.

2 participants