피드로 돌아가기
Interview Sheet Q2:- 121. Best Time to Buy and Sell Stock
Dev.toDev.to
Backend

O(n²) Brute Force를 O(n) One Pass로 최적화한 효율적 수익 계산 설계

Interview Sheet Q2:- 121. Best Time to Buy and Sell Stock

shipra Shankhwar2026년 5월 22일1beginner

Context

배열 내 최저가 매수와 최고가 매도 시점을 찾는 알고리즘 설계 과정. 중첩 루프를 사용하는 초기 접근 방식의 시간 복잡도 증가로 인한 대규모 데이터 처리 한계 발생.

Technical Solution

  • 전수 조사를 통한 모든 조합 계산 방식의 O(n²) 시간 복잡도 제거
  • 단일 루프 내에서 실시간 최솟값을 갱신하는 One Pass 전략 채택
  • current_price와 minPrice의 차이를 이용한 즉각적인 profit 계산 로직 구현
  • 별도의 추가 메모리 할당 없이 변수 두 개만 사용하는 Space Complexity O(1) 유지
  • 매 시점 최적의 이익을 maxProfit에 업데이트하는 그리디 알고리즘 적용

1. 중첩 루프 발생 시 단일 순회로 상태 갱신이 가능한지 검토

2. 전역 최솟값/최댓값 변수를 활용한 실시간 비교 로직 적용 가능성 확인

3. 시간 복잡도 개선이 공간 복잡도에 영향을 주지 않는 최적 지점 탐색

원문 읽기