배열 A,B 비교해서 배열 A에 배열 B의 요소가 몇개씩 일치하는지 구해라.
for 문을 돌려서 queries의 요소를 돌아가며 카운팅함.
queriesd의 특정 요소가 strings 배열 내 몇개 있는지는
while문 + indexOf 매서드를 활용해서 구함.
while문을 탈출하면 계산한 count를 미리 선언한 배열에 push.
"use strict";
const fs = require("fs");
process.stdin.resume();
process.stdin.setEncoding("utf-8");
let inputString = "";
let currentLine = 0;
process.stdin.on("data", function (inputStdin) {
inputString += inputStdin;
});
process.stdin.on("end", function () {
inputString = inputString.split("\n");
main();
});
function readLine() {
return inputString[currentLine++];
}
/*
* Complete the 'matchingStrings' function below.
*
* The function is expected to return an INTEGER_ARRAY.
* The function accepts following parameters:
* 1. STRING_ARRAY strings
* 2. STRING_ARRAY queries
*/
function matchingStrings(strings, queries) {
const arr = [];
for (let i = 0; i < queries.length; i++) {
let index = strings.indexOf(queries[i]);
let count = 0;
while (index !== -1) {
count++;
index = strings.indexOf(queries[i], index + 1);
}
arr.push(count);
}
return arr;
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const stringsCount = parseInt(readLine().trim(), 10);
let strings = [];
for (let i = 0; i < stringsCount; i++) {
const stringsItem = readLine();
strings.push(stringsItem);
}
const queriesCount = parseInt(readLine().trim(), 10);
let queries = [];
for (let i = 0; i < queriesCount; i++) {
const queriesItem = readLine();
queries.push(queriesItem);
}
const res = matchingStrings(strings, queries);
ws.write(res.join("\n") + "\n");
ws.end();
}
indexOf 매서드 -> 인자가 2개일 땐 2번째 인자 값인 인덱스부터 검사함.