😎풀이

  1. nums1, nums2, nums3 배열의 중복을 각각 제거
  2. 세 배열을 병합
  3. 병합된 배열의 모든 숫자 빈도 확인
  4. 두 번 이상 탐색된 수는 각각 다른 배열의 수 이므로 정답 배열에 추가
  5. 정답 배열 반환
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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글