์์ฅ
ํ๋ก๊ทธ๋๋จธ์ค ํด์ ๋ฌธ์
๋ฌธ์ ๋งํฌ
๋ณธ ๋ฌธ์ ๋ C++๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐํ์๋ค.
๋ฌธ์ ๊ฐ ์ด๋ ต๋ค๊ธฐ๋ณด๋ค ์ํ์ ์ฌ๊ณ ๋ฅ๋ ฅ์ ์๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ํ๋ฒ ๊ฐ์ด ๋ณด์.
๋ฌธ์ ์ค๋ช
์คํ์ด๋ค์ ๋งค์ผ ๋ค๋ฅธ ์ท์ ์กฐํฉํ์ฌ ์ ์ด ์์ ์ ์์ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์คํ์ด๊ฐ ๊ฐ์ง ์ท์ด ์๋์ ๊ฐ๊ณ ์ค๋ ์คํ์ด๊ฐ ๋๊ทธ๋ ์๊ฒฝ, ๊ธด ์ฝํธ, ํ๋์ ํฐ์ ์ธ ๋ฅผ ์ ์๋ค๋ฉด ๋ค์๋ ์ ์ฒญ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ๋๊ทธ๋ ์๊ฒฝ ๋์ ๊ฒ์ ์ ๊ธ๋ผ์ค๋ฅผ ์ฐฉ์ฉํ๊ฑฐ๋ ํด์ผ ํฉ๋๋ค.
์ข ๋ฅ | ์ด๋ฆ |
---|---|
์ผ๊ตด | ๋๊ทธ๋ ์๊ฒฝ |
์์ | ํ๋์ ํฐ์ ์ธ |
ํ์ | ์ฒญ๋ฐ์ง |
๊ฒ์ท | ๊ธด ์ฝํธ |
์คํ์ด๊ฐ ๊ฐ์ง ์์๋ค์ด ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด clothes๊ฐ ์ฃผ์ด์ง ๋ ์๋ก ๋ค๋ฅธ ์ท์ ์กฐํฉ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- clothes์ ๊ฐ ํ์ [์์์ ์ด๋ฆ, ์์์ ์ข ๋ฅ]๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํ์ด๊ฐ ๊ฐ์ง ์์์ ์๋ 1๊ฐ ์ด์ 30๊ฐ ์ดํ์ ๋๋ค.
- ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์์์ ์กด์ฌํ์ง ์์ต๋๋ค.
- clothes์ ๋ชจ๋ ์์๋ ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๋ชจ๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ธ ์์ฐ์์ด๊ณ ์ํ๋ฒณ ์๋ฌธ์ ๋๋ โ_โ ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํ์ด๋ ํ๋ฃจ์ ์ต์ ํ ๊ฐ์ ์์์ ์ ์ต๋๋ค.
์ ์ถ๋ ฅ ์
clothes | return |
---|---|
[[โyellowhatโ, โheadgearโ], [โbluesunglassesโ, โeyewearโ], [โgreen_turbanโ, โheadgearโ]] | 5 |
[[โcrowmaskโ, โfaceโ], [โbluesunglassesโ, โfaceโ], [โsmoky_makeupโ, โfaceโ]] | 3 |
๋ฌธ์ ํด๊ฒฐ
๋ฌธ์ ํด์
์ฒซ๋ฒ์งธ ์
์ถ๋ ฅ ์๋ฅผ ๋ณด๋ฉด return
๊ฐ์ 5๋ผ๊ณ ๋์์๋ค. ๊ทธ ์ด์ ๋ฅผ ์์๋ณด์.
์คํ์ด๋ค์ ๋คํค์ง ์๊ธฐ ์ํด ์์ฅ์ ํ๋ค๊ณ ํ๋ค. headegear
๋ผ๋ ์นดํ
๊ณ ๋ฆฌ ์์ yellowhat
๊ณผ green_truban
ํจ์
์์ดํ
๋ค์ด ์๊ณ eyewear
๋ผ๋ ์นดํ
๊ณ ๋ฆฌ ์์ bluesunglasses
๋ผ๋ ํจ์
์์ดํ
์ด ์๋ค. ์คํ์ด๋ ์ต์ ํ ๊ฐ ์ด์์ ์์์ ์
์ด์ผ ํ๋ค๋ ์ ํ์ฌํญ๋ ์ ๊ธฐ์ตํด๋์.
๊ทธ๋ ๋ค๋ฉด 5๊ฐ์ง๊ฐ ๋์ค๋ ๊ณผ์ ์
yellowhat
๋ง ์ฐฉ์ฉํ์ ๊ฒฝ์ฐ +green_turban
๋ง ์ฐฉ์ฉํ์ ๊ฒฝ์ฐ +bluesunglasses
๋ง ์ฐฉ์ฉํ์ ๊ฒฝ์ฐ +yellowhat
๊ณผbluesunglasses
๋ฅผ ์ฐฉ์ฉํ์ ๊ฒฝ์ฐ +green_turban
๊ณผbluesunglasses
๋ฅผ ์ฐฉ์ฉํ์ ๊ฒฝ์ฐ
ํด์ 5๊ฐ์ง๊ฐ ๋์จ๋ค. ์ ์ถ๋ ฅ ์์ 2๋ ๋๊ฐ์ ์๋ฆฌ๋ค.
์ํ์ ๊ณ์ฐ
์ฝ๋๋ ์ด๋ป๊ฒ ์ง์ผ๋ ์ง ๊ฐ์ด ์๋ค. ๋ค๋ง ์๋ง์ ํ
์คํธ ์ผ์ด์ค๋ค์ ์ด๋ป๊ฒ ์ปค๋ฒํ ์ง ์ผ๋ฐํ๋ ์์์ด ํ์ํ๋ค.
๊ณ ๋ฏผ์ ํด๋ณด์โฆ ์ด ๋ฌธ์ ๋ ์ท์ ์ด๋ป๊ฒ ์
์ ์ ์๋์ง ๋ชจ๋ ์กฐํฉ์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๊ทธ ์๊ฐ์ ๊ณ์ ํ๊ณ ์์ผ๋ฉด ์ด๋ฐ ๊ณต์์ด ๋ ์ค๋ฅธ๋ค.
\[\begin{aligned} (x+1)(y+1) = xy + x + y + 1 \end{aligned}\]
๋ชจ๋ ์กฐํฉ์ ์๋ฅผ ๊ตฌํ ์ ์๋ ๊ณต์์ด๋ค. ๋ค๋ง ์ฌ๊ธฐ์ -1
์ ํด์ค์ผ ํ๋๋ฐ ๊ทธ ์ด์ ๋ ์ต์ 1๊ฐ ์ด์์ ์์์ ์ฐฉ์ฉํ๊ณ ์์ด์ผ ํ๋ค๊ณ ๋์์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์๋ฌด๊ฒ๋ ์ ์
๊ณ ์๋ ์ํ๋ฅผ ๋นผ์ค์ผํ๋ค.
์ฝ๋
ํด๋น ๋ฌธ์ ์ ํต์ฌ์ ์คํ์ด๊ฐ ๋ฌด์จ ์์์ ๊ฐ์ง๊ณ ์๋์ง๋ ๊ด์ฌ์ด ์๋ค๋ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ๊ด์ฌ์๋ ๊ฒ์ ์ด๋ค ์นดํ
๊ณ ๋ฆฌ ์์ ๋ช ๊ฐ์ ์์์ด ์ค๋น๋์ด ์๋์ง ๊ทธ ๊ฐ์๋ง ์๋ฉด ๋๋ค. ๋ฐ๋ผ์ 2์ฐจ์ ๋ฐฐ์ด๋ก ์ฃผ์ด์ง๋ ์์ ์ค์์
clothes[x][1]
๋ง ๋ฐ์ ๊ทธ ์นดํ
๊ณ ๋ฆฌ์ ํฌํจ๋๋ ์์์ ๊ฐ์๋ฅผ ์์๋ด๋ฉด ๋ ๊ฒ์ด๋ค.
using namespace std;
map<string, int> getHash(vector<vector<string>> clothes) {
map<string, int> ret;
for(int i=0; i<clothes.size(); i++) {
auto itr = ret.find(clothes[i][1]);
if(itr == ret.end()) {
ret.insert(pair<string, int>(clothes[i][1], 1));
} else {
itr->second++;
}
}
return ret;
}
int solution(vector<<vector<string>> clothes) {
map<string, int>::iterator itr;
map<string, int> ret = getHash(clothes);
int answer = 1;
for (itr = ret.begin(); itr != ret.end(); ++itr) {
answer *= (itr->second+1);
}
return answer-1;
}
์ฝ๋ ์ค๋ช
๊ฐ ์นดํ
๊ณ ๋ฆฌ ์์ ์์์ ๊ฐ์๊ฐ ๋ช ๊ฐ์ธ์ง ์์๋ด๊ธฐ ์ํด Map
์ปจํ
์ด๋๋ฅผ ์ด์ฉํ์๋ค. getHash
ํจ์๋ฅผ ๋ณด๋ฉด ret
๋ณ์์์ clothes[i][1]
(์นดํ
๊ณ ๋ฆฌ) ๋ฅผ ์ฐพ์์ ํด๋น ์นดํ
๊ณ ๋ฆฌ์ ํด๋น๋๋ ์ท์ ๊ฐ์๋ฅผ ๊ณ์ ๋ํด์ค๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ณด์ฌ์ค๋ค. itr==ret.end()
๋ผ๋ ๊ฒ์ ret
์์ ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ๋๊น์ง ์ฐพ์ง ๋ชปํ์ ๋๋ผ๋ ๋ป์ด๋ค.
์ด์ solution
ํจ์๋ฅผ ๋ณด๋ฉด ์์ ์ ์ด๋์ ์ํ ๊ณต์์ ์ ์ฉํ ๋ชจ์ต์ด๋ค.
\[(x+1)(y+1)(z+1) = xyz + xy + xz + yz + x + y + z + 1\]์นดํ ๊ณ ๋ฆฌ ์๊ฐ ๋ช ๊ฐ์ด๋๋ผ๋ ์ ๊ณต์์ ์ ์งํด์ฃผ๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด ์นดํ ๊ณ ๋ฆฌ๊ฐ
headgear
,eyegear
,outer
์ด 3๊ฐ๊ฐ ์๊ณ ๊ฐ ์นดํ ๊ณ ๋ฆฌ์ ํด๋นํ๋ ์์์ ๊ฐ์๋ค์x, y, z
๋ผ๊ณ ํ์ ๋
์ด๋ฏ๋ก ๋ชจ๋ ์กฐํฉ์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก ๊ตฌํ answer
์์ 1์ ๋นผ์ฃผ๋ฉด ๋ง๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋๋ค.
๋ง๋ฌด๋ฆฌํ๋ฉฐ & ๊ทผํฉ
์ฝํ
๋ฌธ์ ๋ฆฌ๋ทฐ๋ฅผ ์ ๋ง ์ค๋๋ง์ ํ๋ค. ๊ทธ ์ด์ ๋โฆ
์ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค!!!
์ ์ญํ๊ณ m1 ๋งฅ๋ฏธ๋๋ ๊ตฌ์ ํ๊ณ ๋ฐ์คํฌ ์ ์ ํ๋๋ผ ๊ฝค ์ ์ ์๋ ๋๋ ๋ค์ ๋ณด๋๋ค. ์ ์ญํ์ง๋ ์ด์ 1๋ฌ์ด ๋๊ฐ๋๋ฐ ์ด์ ๋ถํฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํธ๋ ๊ฒ์ ๋ฐ์ฐจ๋ฅผ ๊ฐํด์ผ๊ฒ ๋ค. ๊ธธ๋ค๋ฉด ๊ธธ๊ณ ์งง๋ค๋ฉด ์งง์ ๊ตฐ์ํ์ ๋ฌด์ฌํ ๋ง์ณ ๋คํ์ด๋ค.
์ผ๋ฅธ ๋ณตํํ๊ณ ์ถ๋คโฆ