728x90
๋ฐ์ํ
๐ 07 - ์๋๊ทธ๋จ(ํด์ฌ)
Anagram์ด๋ ๋ ๋ฌธ์์ด์ด ์ํ๋ฒณ์ ๋์ด ์์๋ ๋ค๋ฅด์ง๋ง ๊ทธ ๊ตฌ์ฑ์ด ์ผ์นํ๋ฉด ๋ ๋จ์ด๋ ์๋๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค. ๊ธธ์ด๊ฐ ๊ฐ์ ๋ ๊ฐ์ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด ๋ ๋จ์ด๊ฐ ์๋๊ทธ๋จ์ธ์ง ํ๋ณํ๋ ๋ฌธ์ ์ด๋ค.
- ํ๊ธ ํ์ฅ ๋ฌธ์ ์์์ ๊ฐ์ด str1์ ์ฐจ๋ก๋๋ก ๋๋ฉฐ Map ๊ฐ์ฒด์ key๋ฅผ ์ด์ฉํด value๋ฅผ ์ ์ฅํ๋ค.
- str2๋ฅผ ์ฐจ๋ก๋๋ก ๋๋ฉฐ Map ๊ฐ์ฒด์ key๊ฐ ์กด์ฌํ์ง์๊ฑฐ๋ get(key) ํจ์๋ฅผ ์ด์ฉํด ๋ฐํ๋ฐ์ ๊ฐ์ด 0์ด๋ผ๋ฉด 'NO'๋ฅผ ๋ฆฌํดํ๋ค.
- ์ ์กฐ๊ฑด์ ํด๋นํ์ง ์์ผ๋ฉด get() ํจ์๋ฅผ ์ด์ฉํ์ฌ key์ ํด๋นํ๋ ๊ฐ์ ๋ฐํ๋ฐ์ -1์ ํด์ค๋ค.
- set() ํจ์๋ฅผ ์ด์ฉํ์ฌ Map ๊ฐ์ฒด์ key์ ๋ณ๊ฒฝ๋ value๋ฅผ ์ ์ฅํด์ค๋ค.
๐ ํ์ด
function solution(str1, str2) {
let answer = 'YES';
let sH = new Map();
for (let x of str1) {
if (sH.has(x)) sH.set(x, sH.get(x) + 1);
else sH.set(x, 1);
}
for (let x of str2) {
if (!sH.has(x) || sH.get(x) === 0) return 'NO';
sH.set(x, sH.get(x) - 1);
}
return answer;
}
let a = 'AbaAeCe';
let b = 'baeeACA';
console.log(solution(a, b));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 6] 01 - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.09.23 |
---|---|
[JavaScript/section 5] 08 - ๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2022.09.22 |
[JavaScript/section 5] 06 - ํ๊ธ ํ์ฅ (0) | 2022.09.21 |
[JavaScript/section 5] 05 - ์ต๋ ๋งค์ถ (0) | 2022.09.20 |
[JavaScript/section 5] 04 - ์ฐ์ ๋ถ๋ถ์์ด 2 (0) | 2022.09.19 |