Algorithm/Programmers
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ
๊ฐ๋ฐ๊ฐ๊ตด๐ธ
2022. 8. 26. 19:09
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/42578
[ํ์ด]
์คํ์ด๋ค์ด ์ท์ ์กฐํฉํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ง์ฝ ์ผ๊ตด์ด a,b 2๊ฐ, ์์ c 1๊ฐ๊ฐ ์๋ค๋ฉด, a, b, ab, c, ac, bc 5๊ฐ์ง๊ฐ ์์ต๋๋ค.
๊ฐ ์ท ์ข ๋ฅ๋ณ๋ก 1๊ฐ ์ด์ ์ฐฉ์ฉํ๋ ๊ฒฝ์ฐ, ์์ ์ฐฉ์ฉํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๊ฐ ๊ตฌํ๋ฉด ์ผ๊ตด 3๊ฐ, ์์ 2๊ฐ ์ด๊ณ , ์๋ฌด๊ฒ๋ ์ฐฉ์ฉํ์ง ์๋ ๊ฒฝ์ฐ๋ 1๊ฐ์ ๋๋ค.
ํ์ง๋ง, ์ต์ 1๊ฐ์ ์ท์ ์ฐฉ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ (์ผ๊ตด ์ข ๋ฅ + 1) X (์์ ์ข ๋ฅ + 1) - 1 = 3 X 2 - 1 = 5๊ฐ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ํ์ด ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- answer์ ๊ณฑ์ ์ ํ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ 1๋ก ์ด๊ธฐํ ํฉ๋๋ค.
- (ํ์ , ๊ฐ์)๋ฅผ ํค์ ์์ผ๋ก ๊ฐ๋ Map์ ํ์ฉํด ๊ฐ๊ฐ์ ํ์ ์ ๊ฐ์๋ฅผ ๊ตฌํฉ๋๋ค.
- Map์ forEach๋ฌธ์ ํตํด ์ํํ๋ฉฐ ๊ฐ๊ฐ์ ํ์ ์ ๊ฐ์ + 1์ ๊ฐ์ answer์ ๊ณฑํด์ค๋๋ค.
- ๋ง์ง๋ง์ ์๋ฌด๊ฒ๋ ์ฐฉ์ฉํ์ง ์๋ ๊ฒฝ์ฐ 1์ answer์์ ๋นผ์ฃผ๋ฉด ์ท์ ์กฐํฉ์ ๊ตฌํ ์ ์์ต๋๋ค.
[์ฝ๋]
function solution(clothes) {
let answer = 1;
const map = new Map();
clothes.forEach((item) => {
const [name, type] = item;
map.has(type) ? map.set(type, map.get(type) + 1) : map.set(type, 1);
})
map.forEach((item) => answer *= (item + 1));
answer--;
return answer;
}