❗ 조건
조건 1. 듣도 못한 사람과 보도 못한 사람의 명단은 중복되는 이름이 없음 -> set() 활용
조건 2. 듣보잡의 수와 그 명단은 사전순으로 출력 -> sort() 활용
조건 3. 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어짐
조건 4. 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n');
const [N, M] = input.shift().split(' ');
let n_set = new Set();
let m_set = new Set();
for(let i=0; i<input.length; i++) {
if(i < N) {
n_set.add(input[i]);
} else {
m_set.add(input[i]);
}
}
const intersect = [...n_set].filter(data => m_set.has(data)).sort()
console.log(intersect.length)
intersect.forEach(element => {
console.log(element)
});
❗ 풀이
1. 첫 줄에서 주어진 듣도 못한 사람과 보도 못한 사람의 갯수를 shift를 이용해서 빼낸 뒤에 split을 이용해 쪼개서 N과 M으로 정의
2. N과 M이 들어갈 Set() 정의
3. 듣도 못한 사람의 명단을 앞서 정의한 n_set()에 add하고 보도 못한 사람의 명단을 m_set()에 add하는 input(이름이 들어가있는 배열)의 길이만큼 반복함
-> 이렇게 하면 듣도 못한 사람과 보도 못한 사람의 Set()에 이름 값들이 들어가게 되고 중복은 알아서 제거됨
4. 두 Set()을 합집합하고 해당 집합을 배열로 변환 후 sort()를 통해 사전순으로 정렬
5. 정답 출력
'알고리즘 풀이' 카테고리의 다른 글
[JAVASCRIPT] 백준 14425번 문제 풀이 (3) | 2023.01.19 |
---|---|
[JAVASCRIPT] 백준 1181번 문제 풀이 (0) | 2022.12.27 |
[JAVASCRIPT] 백준 1475번 문제 풀이 (0) | 2022.12.10 |
[JAVASCRIPT] 백준 10610번 문제 풀이 (0) | 2022.11.23 |
[JAVASCRIPT] 백준 9095번 문제 풀이 (0) | 2022.09.29 |