일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 1969번
- 16439번
- 123만들기
- javascript
- 자바스크립트
- 타입스크립트 프로그래밍
- 5014번
- 한윤정이 이탈리아에 가서 아이스크림을 사먹는데
- 7526번
- 알고리즘
- 13913번
- 6593번
- 타입스크립트
- 맥주마시면서걸어가기
- 14940번
- 나이트의이동
- 1541번
- 정리
- 토마토
- 풀이
- 5427번
- 20300번
- 17626번
- 16953번
- 2422번
- 1926번
- node.js
- 2503번
- 20365번
- 백준
Archives
- Today
- Total
Sqsung DevLog
[백준] 14425번: 문자열 집합 (Node.js) 본문
1. 문제 (난이도: Silver III)
14425번: 문자열 집합
첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어
www.acmicpc.net
2. 풀이
const [info, ...input] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
console.log(
(() => {
const [S, N] = info.split(' ').map(val => +val);
const sample = {};
let included = 0;
input.splice(0, S).forEach(word => {
sample[word] = 'placeholder';
});
input.forEach(word => {
if (sample[word]) included += 1;
});
return included;
})()
);
2-1. 풀이 설명
집합 S와 나머지 문자열을 구분해서 나눠준 뒤, 집합 S를 우선순회하며 각 단어를 키로 사용해 객체에 프로퍼티를 생성해둔다. 이때 value는 truthy값 중 아무거나 사용해도 된다. (Falsy값 사용해도 되지만 이후 비교 로직 변경 필요)
나머지 문자열들을 순회하면서, 앞서 생성한 객체에 각 문자열을 키로 사용 중인 프로퍼티가 있는지 확인하고, 있으면 included 값을 1 증가한다. 반복문이 끝나면 included 변수 반환한다.
'Algorithm' 카테고리의 다른 글
[백준] 5014번: 스타트링크 - Node.js (자바스크립트) (2) | 2023.05.22 |
---|---|
[백준] 1697번: 숨바꼭질 - Node.js (자바스크립트) (0) | 2023.05.22 |
[백준] 19583번: 싸이버개강총회 (Node.js) (0) | 2023.05.19 |
[백준] 2644번: 촌수계산 (Node.js) (1) | 2023.05.18 |
[백준] 4358번: 생태학 (Node.js) (0) | 2023.05.18 |