โ๏ธ ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=javascript
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โ๏ธ ๋ฌธ์ ์์ฝ
[์์์ ์ด๋ฆ, ์์์ ์ข ๋ฅ]๋ก ์ด๋ฃจ์ด์ง 2์ฐจ์ ๋ฐฐ์ด clothes๊ฐ ์กด์ฌํ๋ฉฐ, ์ฝ๋๋ ํ๋ฃจ์ ์ต์ ํ๊ฐ์ง์ ์ท์ ์ ์ด์ผ ํ๋ค. ๋จ, ๊ฐ์ ์ข ๋ฅ์ ์ท์ ์ฌ๋ฌ๋ฒ ์ ์ ์ ์๋ค. ์ฝ๋๊ฐ ์ ์ ์ ์๋ ์ท์ ์กฐํฉ์ ์๋ฅผ ๋ฐํํด๋ผ.
๐ด ์ ํ์ฌํญ
- clothes์ ๊ฐ ํ์ [์์์ ์ด๋ฆ, ์์์ ์ข ๋ฅ]๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ฝ๋๊ฐ ๊ฐ์ง ์์์ ์๋ 1๊ฐ ์ด์ 30๊ฐ ์ดํ์ด๋ค.
- ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์์์ ์กด์ฌํ์ง ์๋๋ค.
- clothes์ ๋ชจ๋ ์์๋ ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ๋ชจ๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ธ ์์ฐ์์ด๊ณ ์ํ๋ฒณ ์๋ฌธ์ ๋๋ '_' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.
๐ฉ ์ ๊ทผ๋ฒ
์ฒ์์ ์ ๊ทผํ ๋๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์์ผํ๋์ง ๊ณ ๋ฏผํ๋๋ฐ, ๋ธ๋ฃจํธํฌ์ค ๋ฌธ์ ๋ณด๋ค๋ ๋ ๊ฐ๋จํ๊ฒ ๋ฌธ์ ๋ฅผ ํ ์ ์์ ๊ฒ ๊ฐ์๊ณ , ์ํ์ ์ผ๋ก ์ ๊ทผํ๋ฉด ์ข์ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋ฐ๋ฐ ๊ณต์์ด ๋ ์ค๋ฅด์ง ์์๊ณ , ํ๋ฃจ์ ๋ ๊ณ ๋ฏผํ ์ดํ์ ๋ค๋ฅธ ๋ถ์ ์ํ ์ ์ธ ๋ต์ ์ป์ ์ ์์๋ค.
https://school.programmers.co.kr/questions/33347
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ ํํธ๋ฅผ ํตํด ์ข ๋ฅ์ ๊ฐ์๋ฅผ hashMap์ผ๋ก ์ ์ฅํ๊ณ (x+a)(x+b)(x+c)... ์์ผ๋ก ๊ณ์ฐ์ ์งํํ๋๋ก ์ฝ๋ฉํ๋ค.
๐ก์ฝ๋
function solution(clothes) {
let map = new Map();
let answer = 1;
for(let i=0; i<clothes.length; i++){
map.set(clothes[i][1], (map.get(clothes[i][1]) || 0) + 1);
}
for([k, v] of map) {
answer *= (1 + v);
}
return answer -1;
}
๊ฐ์ธ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๋๋ฌด ๋ชจ๋ฅด๊ณ ์๋ค๋ ๊ฒ์ ํ์ค์ ์ผ๋ก ์ง์ํ๊ฒํ๋ ๋ฌธ์ ์๋ค. ๋ ์ด์ฌํ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ํด์ผ๊ฒ ๋ค.