피드로 돌아가기
Java Solution - LeetCode Problem 1 Two Sum
Dev.toDev.to
Backend

HashMap 기반 Time Complexity O(n) 최적화 구현

Java Solution - LeetCode Problem 1 Two Sum

V Krishnasubramaniam2026년 6월 13일1beginner

Context

정수 배열 내 두 수의 합이 특정 target 값과 일치하는 인덱스를 탐색하는 문제. Brute-force 방식 적용 시 O(n^2)의 시간 복잡도로 인해 발생하는 성능 저하 해결 필요.

Technical Solution

  • HashMap을 활용한 단일 Pass 탐색 구조 설계
  • target에서 현재 값을 뺀 complement 값을 Key로 사용하는 Lookup 전략 채택
  • 배열 순회 중 complement의 존재 여부를 O(1) 시간 복잡도로 확인하여 불필요한 중첩 루프 제거
  • 방문한 요소의 값과 인덱스를 Pair 형태로 저장하여 즉각적인 결과 반환 체계 구축
  • Space Complexity O(n)을 감수하고 Time Complexity를 획기적으로 단축하는 Trade-off 적용

1. 중복 루프 제거를 위해 보조 자료구조(Hash-based) 활용 가능성 검토

2. 탐색 대상 데이터의 특성에 따른 최적의 Time/Space Complexity 균형점 설정

3. Complement 기반의 역산 설계를 통한 탐색 범위 최소화 적용

원문 읽기