•
문제 설명 : 제공되는 두 배열에서 공통되는 요소는 조건에 맞게 앞에 설정하고, 공통되지 않은 요소는 뒤에 붙어준다
•
풀이 방법
◦
 요소 관리는 hash table을 사용하였으며, 마지막 오름차순으로 붙어줄 때만 sorted를 사용하였다.
•
시간복잡도 : 
•
성공 코드
from collections import defaultdict
class Solution:
    def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:
        arr1_count_info = defaultdict(int)
        
        # O(N)
        arr1_set, arr2_set = set(arr1), set(arr2)
        result = []
				
				# arr1에 존재하는 요소들과 각 숫자의 갯수 확인 -> O(N)
        for item in arr1:
            arr1_count_info[item] += 1
				
				# arr2에 있는 요소를 확인한다. -> O(N)
        for item in arr2:
            for _ in range(arr1_count_info[item]):
                result.append(item)
            
            # arr2에 존재하지 않는 요소만 남기기 위해 remove 한다.
            arr1_set.remove(item)
				
				# 남아있는 요소를 추가한다.
				# sorted -> O(NlogN)
        for item in sorted(arr1_set):
            for _ in range(arr1_count_info[item]):
                result.append(item)
        return result
Python
복사
