Skip to content

jjunii/05#47

Merged
seonghyeon0312 merged 1 commit into
ssafy-gumi-4-algorithm-study:mainfrom
jjunii:jjunii/05
Mar 20, 2026
Merged

jjunii/05#47
seonghyeon0312 merged 1 commit into
ssafy-gumi-4-algorithm-study:mainfrom
jjunii:jjunii/05

Conversation

@jjunii

@jjunii jjunii commented Mar 5, 2026

Copy link
Copy Markdown
Collaborator
  • 상 - 백준 2098번 외판원 순회
  • 중 - 프로그래머스 42895 N으로 표현
  • 하 - 백준 11053번 가장 긴 증가하는 부분 수열

@seonghyeon0312

Copy link
Copy Markdown
Contributor

@claude 현재 변경 파일에 대한 코드 리뷰하고 코멘트 남겨줘

@claude

claude Bot commented Mar 6, 2026

Copy link
Copy Markdown

🔍 코드 리뷰 - jjunii.java (BOJ 11053 - 가장 긴 증가하는 부분 수열)

✅ 잘한 점

  • BufferedReader + StringTokenizer 조합으로 입력 성능을 잘 챙겼어요!
  • dp[i] = 1로 초기화한 뒤, 이전 원소들과 비교하는 LIS DP의 핵심 로직을 깔끔하게 구현했습니다.
  • 이중 루프 안에서 result를 매번 갱신해 별도의 최댓값 탐색 루프가 필요 없이 간결하게 작성했네요. 👍
  • 코드 전체가 짧고 군더더기 없이 읽기 쉽습니다.

⏱ 시간복잡도 / 공간복잡도

  • 시간복잡도: O(N²) — 이중 for 루프
  • 공간복잡도: O(N) — list[], dp[] 배열 각각 N개

N의 최댓값이 1,000이라 O(N²) = 최대 1,000,000번 연산으로 충분히 통과 가능합니다.


🐛 로직 오류 / 엣지케이스

  • 이상 없음 ✅
    • N=1인 경우에도 dp[0] = 1, result = 1로 올바르게 처리됩니다.
    • 수열이 단조 감소하는 경우에도 각 dp[i] = 1로 유지되어 결과가 1로 정확히 나옵니다.

💡 개선 제안

  • 이 문제는 O(N²) DP 외에도 O(N log N) 으로 풀 수 있는 방법이 있습니다.
    • 힌트: 별도의 배열을 유지하면서 이진 탐색으로 삽입 위치를 찾는 방식을 생각해보면 어떨까요?
    • N이 커질수록 (예: N ≤ 1,000,000) 이 최적화가 빛을 발합니다. 심화 도전 과제로 시도해보는 걸 추천드려요! 😊

🎨 코드 품질

  • 변수명: list는 Java의 List 인터페이스와 혼동될 수 있어요. arr, seq, nums 등으로 바꾸면 더 명확할 것 같습니다.
  • import: java.util.*는 와일드카드 임포트인데, 실제로 사용하는 클래스는 StringTokenizer 하나뿐입니다. import java.util.StringTokenizer;처럼 명시적으로 작성하면 더 좋습니다.
  • 나머지 구조(들여쓰기, 로직 분리)는 깔끔합니다.

🏁 최종 판정

  • Approve
  • 사유: LIS의 핵심 DP 로직을 정확하게 구현했고, 입출력 최적화도 잘 되어 있습니다. 변수명과 임포트 스타일은 소소한 개선 사항이지만 로직 자체에는 문제가 없습니다. 수고하셨습니다! 🎉

@seonghyeon0312 seonghyeon0312 merged commit 9d64055 into ssafy-gumi-4-algorithm-study:main Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants