Algorithm
- ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ -
๋ฌธ์
์ฒซ์งธ ์ค์๋ ๋๊ฐ์ ์๋ก๋์ด ์๋ ํฌ์ผ๋ชฌ์ ๊ฐ์ N์ด๋ ๋ด๊ฐ ๋ง์ถฐ์ผ ํ๋ ๋ฌธ์ ์ ๊ฐ์ M์ด ์ฃผ์ด์ ธ. N๊ณผ M์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ธ๋ฐ, ์์ฐ์๊ฐ ๋ญ์ง๋ ์์ง? ๋ชจ๋ฅด๋ฉด ๋ฌผ์ด๋ด๋ ๊ด์ฐฎ์. ๋๋ ์ธ์ ๋ ์ง ์ง๋ฌธ์ ๋ตํด์ค ์ค๋น๊ฐ ๋์ด์์ด.
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ํฌ์ผ๋ชฌ์ ๋ฒํธ๊ฐ 1๋ฒ์ธ ํฌ์ผ๋ชฌ๋ถํฐ N๋ฒ์ ํด๋นํ๋ ํฌ์ผ๋ชฌ๊น์ง ํ ์ค์ ํ๋์ฉ ์ ๋ ฅ์ผ๋ก ๋ค์ด์. ํฌ์ผ๋ชฌ์ ์ด๋ฆ์ ๋ชจ๋ ์์ด๋ก๋ง ์ด๋ฃจ์ด์ ธ์๊ณ , ์ฒซ ๊ธ์๋ง ๋๋ฌธ์์ด๊ณ , ๋๋จธ์ง ๋ฌธ์๋ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ด. ํฌ์ผ๋ชฌ ์ด๋ผ์ ์ต๋ ๊ธธ์ด๋ 20์ด์ผ. ๊ทธ ๋ค์ ์ค๋ถํฐ ์ด M๊ฐ์ ์ค์ ๋ด๊ฐ ๋ง์ถฐ์ผํ๋ ๋ฌธ์ ๊ฐ ์ ๋ ฅ์ผ๋ก ๋ค์ด์. ๋ฌธ์ ๊ฐ ์ํ๋ฒณ์ผ๋ก๋ง ๋ค์ด์ค๋ฉด ํฌ์ผ๋ชฌ ๋ฒํธ๋ฅผ ๋งํด์ผ ํ๊ณ , ์ซ์๋ก๋ง ๋ค์ด์ค๋ฉด, ํฌ์ผ๋ชฌ ๋ฒํธ์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ์ถ๋ ฅํด์ผํด. ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ์ซ์๋ ๋ฐ๋์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๊ณ , ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ๋ฌธ์๋ ๋ฐ๋์ ๋๊ฐ์ ์๋ ํฌ์ผ๋ชฌ์ ์ด๋ฆ๋ง ์ฃผ์ด์ ธ.
์ฒซ์งธ ์ค๋ถํฐ ์ฐจ๋ก๋๋ก M๊ฐ์ ์ค์ ๊ฐ๊ฐ์ ๋ฌธ์ ์ ๋ํ ๋ต์ ๋งํด์คฌ์ผ๋ฉด ์ข๊ฒ ์ด! ์ ๋ ฅ์ผ๋ก ์ซ์๊ฐ ๋ค์ด์๋ค๋ฉด ๊ทธ ์ซ์์ ํด๋นํ๋ ํฌ์ผ๋ชฌ์ ์ด๋ฆ์, ๋ฌธ์๊ฐ ๋ค์ด์์ผ๋ฉด ๊ทธ ํฌ์ผ๋ชฌ์ ์ด๋ฆ์ ํด๋นํ๋ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ฉด ๋ผ.
์ ์ถ๋ ฅ ์์
๋ฌธ์ ํ๊ธฐ
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
input.push(line);
}).on("close", function () {
input[0] = input[0].split(' ');
let n = +input[0][0];
let m = +input[0][1];
let animalArr = Array(n + 1).fill(undefined);
let animalObj = {};
let result = [];
for (let i = 1; i <= n; i++) {
let animal = input[i];
animalArr[i] = animal;
animalObj[animal] = i;
}
for (let i = n + 1; i <= n + m; i++) {
let quiz = input[i];
if (isNaN(+quiz)) console.log(animalObj[quiz]);
else console.log(animalArr[+quiz]);
}
process.exit();
});
'๊ฐ์ธ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][Node.js] 1697๋ฒ : ์จ๋ฐ๊ผญ์ง (0) | 2021.07.12 |
---|---|
[๋ฐฑ์ค][Node.js] 1676๋ฒ : ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (0) | 2021.07.11 |
[๋ฐฑ์ค][Node.js] 1550๋ฒ : 16์ง์ (0) | 2021.07.09 |
[๋ฐฑ์ค][Node.js] 1547๋ฒ : ๊ณต (0) | 2021.07.08 |
[๋ฐฑ์ค][Node.js] 1546๋ฒ : ํ๊ท (0) | 2021.07.07 |
๋๊ธ