728x90
๐ section05 - 7 - ์๋๊ทธ๋จ
Anagram
์ ๋ ๋ฌธ์์ด์ด ์ํ๋ฒณ์ ๋์ด ์์๋ฅผ ๋ค๋ฅด์ง๋ง ๊ทธ ๊ตฌ์ฑ์ด ์ผ์นํ๋ฉด ๋ ๋จ์ด๋ฅผ ์๋๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค. ์ด ๋ฌธ์ ๋ฅผ hash
๋ก ํ๋ฉด O(N)
์ผ๋ก ๊ฐ๋จํ๊ฒ ํ ์ ์๋ค. ์ฌ๊ธฐ์ ์๋๊ทธ๋จ์ด ์ฑ๋ฆฝํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํ๋ฉด ํธํ๋ค.
- ๋ฌธ์์ด
s1
์ ์์๋ฅผhash
๊ฐ์ผ๋ก ๋ง๋ ๋ค. - ๋น๊ตํ ๋ฌธ์์ด
s2
๋ฅผ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ํํ๋ฉด์ ์๋๊ทธ๋จ์ด ๋์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋๋ค.(์๋๊ทธ๋จ์ด ์ฑ๋ฆฝํ์ง ์๋ ๊ฒฝ์ฐ:s2
์ ๊ฐ์ดhash
๊ฐ์ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ,hash
๊ฐ์value
๊ฐ 1๋ณด๋ค ์์๊ฒฝ์ฐ) - ์กฐ๊ฑด๋ฌธ๋ฐ์๋
hash
์key
๊ฐ์-1
์ฉ ๋นผ์ค๋ค.
728x90
let s1 = "AbaAeCe";
let s2 = "baeeACA";
let s1H = new Map();
console.log(solution(s1, s2));
function solution(s1, s2) {
for (let x of s1) {
if (s1H.has(x)) s1H.set(x, s1H.get(x) + 1);
else s1H.set(x, 1);
}
console.log(s1H)
for (let x of s2) {
if (!s1H.has(x) | (s1H.get(x) < 1)) return "NO";
s1H.set(x, s1H.get(x) - 1);
console.log(x, s1H)
}
return "YES";
}
๋ฐ์ํ
๋๊ธ