알고리즘 문제를 풀며, 사소하게 알게되는 것들을 모두 기록해보자...
Array를 사용하다보면, 배열을 뒤집기 위해서 위 메서드들을 사용하는 경우들이 있다. 공식문서로 해당 메서드들을 읽다보니 시간복잡도가 다른 것을 알게되어서 기록하기로 하였다.
reverse 의 경우 위와 같이 O(n)의 시간복잡도가 발생하는 것을 알 수 있다. mutating func 이다보니 배열에서 각각의 위치들을 변경하는 동작을 수행하기에 시간복잡도가 O(n)이 되는 것으로 보인다.
하지만, reverse 와 다르게 reversed 메서드의 경우는 시간복잡도가 O(1)에 불과하다. non-mutating func 이다보니 선회하면서 모든 element들의 위치를 변경시켜주는 동작을 하는 것이기 때문이다.
이전에는 시간복잡도를 고려하면서 풀기보다는 구현에만 초점을 맞췄는데, 조금씩 성능적인 부분들에 대해서 고민들을 해야겠다.