diff --git "a/src/content/blog/boj-11728-\353\260\260\354\227\264-\355\225\251\354\271\230\352\270\260.md" "b/src/content/blog/boj-11728-\353\260\260\354\227\264-\355\225\251\354\271\230\352\270\260.md" index d226528bb..0de187585 100644 --- "a/src/content/blog/boj-11728-\353\260\260\354\227\264-\355\225\251\354\271\230\352\270\260.md" +++ "b/src/content/blog/boj-11728-\353\260\260\354\227\264-\355\225\251\354\271\230\352\270\260.md" @@ -12,6 +12,7 @@ tags: - Two-Pointers - Sorting-Algorithm - 실랜디 + - Tim-Sort description: "백준 11728: 배열 합치기 풀이 과정" ogImage: "" --- @@ -20,7 +21,8 @@ ogImage: "" ## 들어가며 -이 문제는 $O(NlgN)$ 혹은 $O(N + M)$안에 정렬을 시킬 수 있는지 묻는 문제입니다. +이 문제는 $O(NlgN)$ 혹은 $O(N + M)$안에 정렬을 시킬 수 있는지 묻는 문제입니다. +저는 Two Pointers 기법으로 풀어서 $O(N + M)$ 시간 복잡도안에 해결했습니다. ## 풀이 과정 @@ -70,3 +72,25 @@ if __name__ == "__main__": print(" ".join(map(str, ans))) ``` + +## 번외: $O(NLgN)$ Tim Sort 이용하기 + +파이썬 기본 내장 정렬 라이브러리는 $O(NLgN)$를 보장합니다. +그래서 아래와 같이 짜도 AC를 받습니다. + +```python +import sys + +input = sys.stdin.readline + + +if __name__ == "__main__": + N, M = map(int, input().rstrip().split()) + ans = [*map(int, input().rstrip().split()), *map(int, input().rstrip().split())] + ans.sort() + print(" ".join(map(str, ans))) + +``` + +참고로 Tim-Sort를 이용한다고 합니다. +[Tim-Sort Naver D2 블로그 아티클](https://d2.naver.com/helloworld/0315536)