본문 바로가기
Problem Solving/BOJ

백준 2533번 사회망 서비스(SNS) - 스위프트(Swift) 시간초과 해결

by 어멘드 2022. 1. 6.
반응형

 이번에도 또 알 수 없는 시간 초과가 발생해서 해결하는 데 애를 먹었다. 아무래도 Swift로는 PS는 하지 않는 게 정신 건강에 좋을 것 같다ㅠ

 이번 범인은 고차함수였다. 아래 글을 발견했는데, map은 확실히 반복문으로 직접 구현하는 것보다 성능이 좋았고, filter는 비슷하고, reduce는 오히려 반복문으로 직접 구현하는 게 더 빨랐다고 한다. 다만 이건 전부 체이닝 하지 않고 고차 함수를 1번만 쓰는 경우에만! 여러 고차 함수를 체이닝 하면 오히려 직접 구현보다 심각하게 성능이 좋지 않다고 한다..;;; 문제에서 reduce랑 체이닝을 남발한 부분이 있었는데 for문으로 고쳐주었더니 시간 안에 통과가 됐다.

https://www.skoumal.com/en/performance-of-built-in-higher-order-functions-map-filter-reduce-and-flatmap-vs-for-in-loop-in-swift/

 

Performance of Map, Filter, Reduce, and flatMap vs. for-in loop in Swift

The most popular higher-order functions are map, filter, and reduce. We all use them since we think that syntax is much better and it is even faster to write them than the old way for-in loop. But is it really true? Have you ever thought about the performa

www.skoumal.com

 

 

반응형

댓글