Skip to content

Conversation

@devyulbae
Copy link
Contributor

@devyulbae devyulbae commented Nov 29, 2025

답안 제출 문제

작성자 체크 리스트

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

검토자 체크 리스트

Important

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

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

@haxr369 haxr369 self-requested a review November 29, 2025 06:37
@devyulbae devyulbae moved this from Solving to In Review in 리트코드 스터디 6기 Nov 29, 2025
@devyulbae
Copy link
Contributor Author

@DaleStudy 리뷰해줘

@dalestudy
Copy link
Contributor

dalestudy bot commented Nov 29, 2025

좋은 진행과 다양한 문제 해결 시도를 보여주셔서 정말 잘하고 계세요! 몇 가지 개선할 점과 격려의 말씀을 드리자면:

  1. 시간/공간 복잡도 명시
    일부 코드에 명시되어 있는데, 특히 longest_substring_without_repeating_characters.pyvalid_palindrome.py는 명확하게 표기되어 있어 좋습니다. maxSubArray에서도 O(n^2)라는 시간복잡도를 명시하는 게 좋겠어요. 이렇게 표기하면 더 깔끔한 문서화가 되고, 평가자가 이해하기 쉽습니다.

  2. maxSubArray의 최적화 제안
    현재 구현은 이중 루프로 모든 부분배열을 탐색하는 방식으로, 시간복잡도가 O(n^2)입니다. 그러나 이 문제는 카데인 알고리즘(Cumulative sum) 또는 투 포인터/슬라이딩 윈도우로 O(n) 해결이 가능하니, 혹시 시간 허용된다면 더 효율적인 방식으로 개선하는 것도 추천드립니다.

  3. 가독성과 스타일
    전체적으로 깔끔하고 이해하기 쉽습니다. 특히 lengthOfLongestSubstring의 슬라이딩 윈도우 설명이 명확하게 되어 있어서 좋습니다. 변수명도 직관적입니다.

  4. 코드 일관성 및 추가 설명
    각 문제별로 간단한 주석이나 핵심 아이디어를 더 첨부하면, 나중에 복습하거나 리뷰하는 사람이 이해하는 데 도움이 될 수 있습니다. 예를 들어, numDecodings는 아직 구현이 미완성된 것 같으니, 완성된 코드를 보여주거나 핵심 로직을 설명하는 주석이 있으면 더 좋아요.

  5. 격려
    다양한 문제를 풀고, 시간복잡도와 공간복잡도까지 신경 쓰며 학습하는 모습이 정말 인상적입니다. 앞으로도 더 최적화된 알고리즘을 도전해보면서 성장하는 모습을 기대하고 응원합니다!

계속해서 좋은 연습과 성장 이어가시길 바랍니다!

Copy link
Contributor

@haxr369 haxr369 left a comment

Choose a reason for hiding this comment

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

@devyulbae 님의 풀이를 보면서 내장함수를 잘 활용하시는 걸 보고
저도 내장함수를 활용해서 코드 길이를 줄여야겠단 생각이 들었습니다.

한 주 고생하셨고 다음 한주도 파이팅입니다!

def isPalindrome(self, s: str) -> bool:
filtered_s = ''.join(char.lower() for char in s if char.isalnum())
return filtered_s == filtered_s[::-1]

Copy link
Contributor

Choose a reason for hiding this comment

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

현재 구현은 문자열을 여러 차례 순회하며 중간 결과를 생성하기 때문에 전체 처리 비용이 커집니다.

  1. 알파벳, 숫자만 추출해 새로운 문자열 생성
  2. 역순 문자열 생성(추가 메모리 사용)
  3. 두 문자열 비교

투포인터 방식을 적용하면 문자 검사, 정규화, 앞뒤 비교를 하나의 루프에서 처리할 수 있어 순회 비용을 단일 O(N)으로 줄일 수 있습니다. 별도 메모리를 사용하지 않으며, 불일치 시 즉시 종료할 수 있어 전체 런타임 측면에서도 더 효율적입니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

오 감사합니다! 한번 최적화해볼게요ㅎㅎ

@devyulbae devyulbae merged commit 10e9abd into DaleStudy:main Nov 29, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from In Review to Completed in 리트코드 스터디 6기 Nov 29, 2025
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