피드로 돌아가기
CA 04 - Two Sum & Sorted Two Sum
Dev.toDev.to
Backend

LeetCode Two Sum 문제를 중첩 반복문으로 해결하되 시간복잡도 O(n²) 트레이드오프 발생

CA 04 - Two Sum & Sorted Two Sum

Suruthika2026년 3월 29일3beginner

Context

Two Sum 문제는 정수 배열에서 합이 목표값과 일치하는 두 개의 인덱스를 찾는 과제입니다. 중첩 반복문 방식은 모든 숫자 쌍을 비교하므로 배열 크기가 커질수록 검사 대상이 기하급수적으로 증가합니다.

Technical Solution

  • 브루트 포스 알고리즘 구현: 첫 번째 반복문으로 배열의 각 요소를 선택하고 두 번째 반복문으로 뒤따르는 모든 요소와 합을 비교
  • 조건 검증: nums[i] + nums[j]의 합이 목표값과 일치하는지 즉시 확인하여 매칭되면 해당 인덱스 반환
  • 인덱스 변환 처리(정렬 Two Sum): 반환 전에 i + 1, j + 1로 변환하여 1부터 시작하는 인덱스 제공
  • 1차원 배열 순회: 추가 자료구조 없이 메모리 O(1)만 사용하면서 모든 경우의 수 탐색

Key Takeaway

브루트 포스는 구현 간결성으로 정답을 보장하지만 입력 규모에 따른 성능 저하를 감수해야 합니다. 데이터 구조 선택(해시맵, 투 포인터 등)이 같은 논리 문제의 실행 시간을 큰 폭으로 좌우하므로 기술 선택의 중요성을 드러냅니다.


알고리즘 학습 단계에서 브루트 포스로 작동 원리를 검증한 뒤, 배열 크기가 10,000 이상인 프로덕션 환경에서는 해시맵 기반 O(n) 솔루션이나 정렬 배열의 투 포인터 방식으로 전환하면 성능을 크게 개선할 수 있습니다.

원문 읽기