피드로 돌아가기
Performance & Recursion
Dev.toDev.to
Backend

David Malan이 재귀 기반 분할 전략으로 선형 시간 O(n)의 인원 계산을 로그 시간 O(log n)으로 단축

Performance & Recursion

Ken Luzuriaga2026년 3월 29일3intermediate

Context

사람을 세는 문제를 여러 방식으로 접근할 수 있다. 순차 계산(1, 2, 3...)은 인원 수만큼 단계를 거치므로 O(n) 시간이 소요된다. 100명 기준으로 100단계가 필요하다.

Technical Solution

  • 재귀 기반 분할 전략 도입: 인원을 쌍으로 나누고 합산하며 한 명씩 앉혀서 문제 크기를 매번 절반으로 축소
  • 기저 사례(Base Case) 정의: 마지막 남은 한 명이 최종 합계를 보유하도록 종료 조건 설정
  • 로그 시간 복잡도 달성: O(log n)으로 감소하여 1,000명 기준 약 10단계만 필요
  • 팩토리얼 함수 예시로 재귀 구조 설명: n == 0일 때 기저 사례 반환, 그 외에는 n * factorial(n-1) 호출

Impact

1,000명 인원 계산 시 약 100단계(O(n/2))에서 약 10단계(O(log n))로 단축.

Key Takeaway

재귀는 문제를 더 작은 부분으로 분할하는 분할 정복 전략을 구현한다. 기저 사례를 정확히 정의하면 입력 크기가 커져도 선형이 아닌 로그 시간 복잡도로 해결할 수 있다.


대규모 데이터 처리가 필요한 백엔드 서비스에서 선형 반복 알고리즘 대신 재귀적 분할 전략을 도입하면 입력 크기가 배수로 증가해도 단계 수를 로그 수준으로 제한할 수 있다.

원문 읽기
Performance & Recursion | Devpick