210402 Algorithm Efficiency (Two pointer algorithm, Sliding window, Hash)에 대한 이야기
알고리즘 효율성 (Two pointer algorithm, Sliding window, Hash)
이번 포스팅에서는 알고리즘의 효율성에 대해서 이야기해보려고 한다.
아래의 코드는 주어진 두 배열을 합쳐서 합쳐진 배열을 오름차순으로 정렬하는 문제를 구현한 코드이다.
처음에 이 문제를 보았을때 들었던 생각은 spread 문법을 사용해서 주어진 두 배열을 하나의 배열로써 unpacking한 다음에 sort() 함수를 사용해서 오름차순 정렬하는 방법을 생각했다. (solution 1
)
그런데 sort()함수를 사용해서 N개의 숫자를 정렬하는 경우에는 시간복잡도 O(NlogN)만큼의 시간 복잡도
를 갖는다.
그렇다면 좀 더 시간복잡도상 효율적인 코드를 작성할 수는 없을까?
단순히 결과값이 나왔다고 좋아하지 말고 좀 더 효율적인 코드를 작성할 수 있도록 생각하고 또 생각해야 한다.