728x90
[Javascript] (백준 1764) 듣보잡
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().split('\n');
//* 인풋 (커스텀)
const n = +input[0].split(' ')[0];
const m = +input[0].split(' ')[1];
//* 함수 콜 (고정)
const answer = solution(n, m);
console.log(answer);
//* 로직함수
function solution(n, m) {
const set1 = new Set();
for (let i = 1; i < n + 1; i++) {
set1.add(input[i].trim());
}
const set2 = new Set();
for (let i = 1 + n; i < m + n + 1; i++) {
set2.add(input[i].trim());
}
const result = [];
for (let word of set1) {
if (set2.has(word)) {
result.push(word);
}
}
result.unshift(result.length);
return result.sort().join('\n');
}
Javascript에는 Set의 교집합, 합집합 등의 메서드가 없습니다. 따라서 위처럼 for문으로 들어있는지 확인하며 풀었습니다.
그런데 MDN의 set을 보니 filter를 이용해 교집합을 흉내 낼 수 있다고 나와있네요. 그래서 따라해 봤습니다.
filter로 교집합 따라하기
const resultSet = new Set([...set1].filter((x) => set2.has(x)));
const result = new Array(...resultSet);
result.unshift(result.length);
return result.sort().join('\n');
'Coding Test > JavaScript' 카테고리의 다른 글
[Javascript] (백준 20291) 파일 정리 (0) | 2022.06.27 |
---|---|
[Javascript] (백준 1259) 팰린드롬 수 (0) | 2022.06.27 |
[Javascript] (백준 10816) 숫자 카드2 (0) | 2022.06.26 |
[Javascript] (백준 2217) 로프 (0) | 2022.06.26 |
[Javascript] (백준 11728) 배열 합치기 (0) | 2022.06.25 |
[Javascript] (백준 20053) 최소, 최대2 (0) | 2022.06.25 |
[Javascript] (백준 1212) 8진수 2진수 (0) | 2022.06.25 |
[Javascript] (백준 2729) 이진수 덧셈 (0) | 2022.06.25 |
댓글