다음 코드의 시간 복잡도는 어떻게 될까? arr.filter { it > 0 }.reduce { acc, i -> acc + i } 일반적인 for-loop문이 들어간 명령형 코드에서 시간 복잡도를 계산하는건 직관적이고 익숙하지만, 코틀린 표준 라이브러리의 컬렉션 함수형 API 함수들의 시간 복잡도를 계산하는건 다소 낯선 일이다. 더욱이 위의 코드와 같이 메서드 체이닝(method chaining) 패턴으로 작성된 코드의 시간 복잡도를 구하라는 이야기를 처음 들으면 당황스러울 수 있다(면접에서 내가 그랬다...). 다음에는 당황하는 일이 없도록 잘 정리해보자. 아래 예제의 확장 함수 IntArray.sumPositive()는 IntArray의 요소 중 양수만 걸러내고(filter) 그 결과에 대해 초기값..