Question
๋ฐฑ์ค 10816๋ฒ : ์ซ์ ์นด๋2
์ซ์ ์นด๋๋ ์ ์ ํ๋๊ฐ ์ ํ์ ธ ์๋ ์นด๋์ด๋ค. ์๊ทผ์ด๋ ์ซ์ ์นด๋ N๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ ์ M๊ฐ๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ์๊ฐ ์ ํ์๋ ์ซ์ ์นด๋๋ฅผ ์๊ทผ์ด๊ฐ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์๊ทผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์ซ์ ์นด๋์ ์ ํ์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ซ์ ์นด๋์ ์ ํ์๋ ์๋ -10,000,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ ์งธ ์ค์๋ M(1 ≤ M ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋ท์งธ ์ค์๋ ์๊ทผ์ด๊ฐ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ธ์ง ๊ตฌํด์ผ ํ M๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด์ ธ ์๋ค. ์ด ์๋ -10,000,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง M๊ฐ์ ์์ ๋ํด์, ๊ฐ ์๊ฐ ์ ํ ์ซ์ ์นด๋๋ฅผ ์๊ทผ์ด๊ฐ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋์ง๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์ ๋ ฅ์์
10
6 3 2 10 10 10 -10 -10 7 3
8
10 9 -5 2 3 4 5 -10
์ถ๋ ฅ์์
3 0 0 1 2 0 0 2
My Code
์ฒ์์๋ set์ผ๋ก ํ๋ ค๊ณ ํ์ผ๋ set์ ์ค๋ณต์ ํ์ฉํ์ง ์์ ์นด๋์ ๊ฐ์๋ฅผ ์ ์๊ฐ ์์๋ค.
๊ณ ๋ก ์๋ก์ด ์๋ฃํ์ด ํ์ํ๋ค.
๋ฐฐ์ด์ ์ด์ฉํด์ ํ๋ ค๊ณ ํ์ง๋ง ๋ฑ ๋ด๋ ์๊ฐ ์ด๊ณผ๋ฅผ ํ๊ณ ํ๋ฆด๊ฒ ๋์ ๋ณด์๋ค. <ํ ๋ฒ ์์ง ๋ ๋ฒ ์๋ ์ฌ์ค ์์๋ค ๐คทโ๏ธ
๊ทธ๋ฆฌ๊ณ node.js ์ ๋ ฅ๋ฐ๋ ๋ถ๋ถ์์ ์๊พธ ์๊ฐ์ด๊ณผ๊ฐ ๋ ์ ์ฌ๊ธฐ์ ๊ธฐ ๊ตฌ๊ธ๋ง ์ข ํ๋ค.
์ ๋ ฅ๋ฐ๋ ๊ฒ๋ง ์ข... ํด๊ฒฐ๋๋ฉด ์คํธ๋ ์ค๊ฐ ๋ฐ์ผ๋ก ์ค ๊ฑฐ ๊ฐ๋ค.
์ ํ์๋๋ฐ ์ ๋์์ ๋ชจ๋ํฐ ์ฃผ๋จน์ผ๋ก ์น๊ณ ์ถ์์.
const input = require("fs").readFileSync("dev/stdin").toString().trim().split(/\s/);
const n = +input[0];
const nArr = input.slice(1, n + 1).map(Number);
const mArr = input.slice(n + 2).map(Number);
const map = new Map();
nArr.forEach((ele) => {
if (map.has(ele)) { map.set(ele, map.get(ele) + 1) } else { map.set(ele, 1) }
})
let result = [];
mArr.forEach((ele) => {
if (map.has(ele)) { result.push(map.get(ele)) } else { result.push(0) }
})
console.log(result.join(' '));
๋ง์์ต๋๋ค!!
HOW? (ํ์ด ๋ฐฉ๋ฒ)
- map์ ์ด์ฉํด์ ์นด๋ ์ข ๋ฅ๋ key, ์นด๋์ ์ฅ์๋ฅผ value๊ฐ์ผ๋ก ์ ์ฅํ๋ค.
- map์ด key๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด value ๊ฐ์ +1 ํด์ค๋ค
- ์๋ ๊ฐ๊ณ ์๋ ์นด๋์ธ nArr์ map์ผ๋ก ๋ง๋ค์ด์ค๋ค.
- ๋น๊ตํ๋ ค๋ ์นด๋์ธ mArr์ ๊ฐ element๊ฐ map์ ์๋์ง ํ์ธํ๊ณ ์์ผ๋ฉด ๋ช ์ฅ ๊ฐ๊ณ ์๋์ง๋ฅผ result๋ฐฐ์ด์ push ํ๋ค.
๋ฐฐ์ด์ ์ํํ๋ ๊ฒ๋ณด๋ค map์ ์ํํ๋ ๊ฒ ๋ ์๊ฐ์ ๋จ์ถํ๋๊ตฌ๋
hash๋ฅผ ์ด์ฉํด์ ํ๋ผ๊ณ ํ๋๋ฐ ์์ง ์ดํด๊ฐ ์ ์ ๊ฐ๋ค.
์๋ฃ๊ตฌ์กฐ๋ผ๋ฉด ์ฐพ์๋ณด๊ณ ์ ๋ฆฌ ํด์ผ๊ฒ ๋ค.
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 11478๋ฒ : ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ฐ์ (0) | 2022.06.15 |
---|---|
[JS] ๋ฐฑ์ค 7568๋ฒ : ๋ฉ์น (0) | 2022.06.08 |
[JS] ๋ฐฑ์ค 10815๋ฒ : ์ซ์ ์นด๋ (0) | 2022.06.05 |
[JS] ๋ฐฑ์ค 10841๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2022.05.28 |
[JS] ๋ฐฑ์ค 1931 ๋ฒ : ํ์์ค ๋ฐฐ์ (feat.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.05.24 |