본문 바로가기

언어/Javascript

집합의 교집합 차집합 대칭차집합

자바스크립트로 PS문제를 풀다가, 정리해보고자 한다.

아래는 두 집합에서 중복되는 요소의 개수에 따른 등 수를 메기는 로직이다.

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=javascript

function solution(lottos, win_nums) {
    const rank = [6,6,5,4,3,2,1]
    const countZero = lottos.filter((ele) => ele === 0).length;
    concideCase = lottos.filter((ele) => win_nums.includes(ele)).length;
    return [rank[concideCase + countZero], rank[concideCase]]
}

교집합 :

intersection = lottos.filter((ele) => win_nums.include(ele));

 

차집합 : 

difference = lottos.filter((ele) => !win_nums.include(ele));
// 어디 부분의 차집합을 구하느냐에 따라서 lottos와 win_nums의 위치를 바꾸면 된다.

 

대칭 차집합:

symmetricDifference = lottos.filter((ele) => win_nums.include(ele).concat(win_nums.filter((ele) => lottos.includes(ele)));

 

 

 

 

 

 

사진 출처 : https://python.bakyeono.net/chapter-5-4.html