피드로 돌아가기
Dev.toBackend
원문 읽기
Java Stream 기반 중복 제거 및 Sorting을 통한 Third Maximum 산출
Solving LeetCode 414 Third Maximum Number: A Streamlined Java Approach
AI 요약
Context
정수 배열 내에서 중복을 제외한 세 번째 최대값을 찾는 문제 해결 필요. 단순 정렬만으로는 중복 요소로 인해 정확한 순위 산출이 불가능한 제약 존재.
Technical Solution
- Arrays.sort() 적용을 통한 전체 요소의 오름차순 정렬 수행
- Java Stream의 distinct() 연산 활용으로 중복 데이터 제거 및 Unique set 확보
- toArray() 변환을 통해 인덱스 기반 접근이 가능한 정적 구조로 재구성
- Unique 배열의 길이를 체크하여 3개 미만일 경우 Maximum 값 반환 로직 적용
- 배열 길이 3개 이상 시 length - 3 인덱스 참조를 통한 Third Maximum 추출
실천 포인트
1. 데이터 중복 가능성 확인 후 distinct() 처리 여부 결정
2. 정렬 기반 접근 시 시간 복잡도 O(n log n) 수용 가능 여부 검토
3. Edge case로 배열 크기가 요구 조건보다 작은 상황에 대한 Fallback 전략 수립