제일 처음에 냈던 답변.
class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
cnt = {}
for i in nums1[:m]:
if i in cnt.keys():
cnt[i] += 1
else:
cnt[i] = 1
for i in nums2:
if i in cnt.keys():
cnt[i]+= 1
else:
cnt[i] = 1
idx = 0
for i in cnt.keys():
for _ in range(cnt[i]):
nums1[idx] = i
idx += 1
공개 테스트케이스는 모두 통과했으나 막상 제출해보니 25/59개만을 통과했다.

틀린 테스트케이스를 확인해 보니 nums1이 nums2보다 큰 숫자부터 시작할 때 딕셔너리에 오름차순으로 저장되지 않아서 그런 것 같았다.
class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
cnt = {}
for i in nums1[:m]:
if i in cnt.keys():
cnt[i] += 1
else:
cnt[i] = 1
for i in nums2:
if i in cnt.keys():
cnt[i]+= 1
else:
cnt[i] = 1
cnt = dict(sorted(cnt.items()))
idx = 0
for i in cnt.keys():
for _ in range(cnt[i]):
nums1[idx] = i
idx += 1
중간에 cnt = dict(sorted(cnt.items()))를 추가해줬더니 다 통과하긴 했는데 시간을 많이 썼다. (당연함) 그래서 다른 답변들을 보니