
😎풀이
nums1, nums2, nums3 배열의 중복을 각각 제거
- 세 배열을 병합
- 병합된 배열의 모든 숫자 빈도 확인
- 두 번 이상 탐색된 수는 각각 다른 배열의 수 이므로 정답 배열에 추가
- 정답 배열 반환
function twoOutOfThree(nums1: number[], nums2: number[], nums3: number[]): number[] {
const nonDupNums1 = [...new Set(nums1)]
const nonDupNums2 = [...new Set(nums2)]
const nonDupNums3 = [...new Set(nums3)]
const merged = [...nonDupNums1, ...nonDupNums2, ...nonDupNums3]
const map = new Map()
const twoOut = []
for(const num of merged) map.set(num, (map.get(num) ?? 0) + 1)
for(const [key, value] of map) {
if(value >= 2) twoOut.push(key)
}
return twoOut
};