안쪽 변수가 매번 절반으로 줄어드는 다음 중첩 반복문의 시간복잡도는?
for (int i = 1; i <= n; i++) {
for (int j = i; j > 0; j /= 2) {
work();
}
}정답 3번
i번째 바깥 반복에서 안쪽 반복은 j를 절반씩 줄이므로 O(log i)번 수행된다. 이를 i=1부터 n까지 합하면 O(log 1+...+log n)=O(n log n)이다.
콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-16