์์ฅ
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/42578
๋ฌธ์ ์ค๋ช
์คํ์ด๋ค์ ๋งค์ผ ๋ค๋ฅธ ์ท์ ์กฐํฉํ์ฌ ์ ์ด ์์ ์ ์์ฅํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์คํ์ด๊ฐ ๊ฐ์ง ์ท์ด ์๋์ ๊ฐ๊ณ ์ค๋ ์คํ์ด๊ฐ ๋๊ทธ๋ ์๊ฒฝ, ๊ธด ์ฝํธ, ํ๋์ ํฐ์ ์ธ ๋ฅผ ์ ์๋ค๋ฉด ๋ค์๋ ์ ์ฒญ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ๋๊ทธ๋ ์๊ฒฝ ๋์ ๊ฒ์ ์ ๊ธ๋ผ์ค๋ฅผ ์ฐฉ์ฉํ๊ฑฐ๋ ํด์ผ ํฉ๋๋ค.
์ข ๋ฅ | ์ด๋ฆ |
---|---|
์ผ๊ตด | ๋๊ทธ๋ ์๊ฒฝ, ๊ฒ์ ์ ๊ธ๋ผ์ค |
์์ | ํ๋์ ํฐ์ ์ธ |
ํ์ | ์ฒญ๋ฐ์ง |
๊ฒ์ท | ๊ธด ์ฝํธ |
์คํ์ด๊ฐ ๊ฐ์ง ์์๋ค์ด ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด clothes๊ฐ ์ฃผ์ด์ง ๋ ์๋ก ๋ค๋ฅธ ์ท์ ์กฐํฉ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- clothes์ ๊ฐ ํ์ [์์์ ์ด๋ฆ, ์์์ ์ข ๋ฅ]๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํ์ด๊ฐ ๊ฐ์ง ์์์ ์๋ 1๊ฐ ์ด์ 30๊ฐ ์ดํ์ ๋๋ค.
- ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์์์ ์กด์ฌํ์ง ์์ต๋๋ค.
- clothes์ ๋ชจ๋ ์์๋ ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๋ชจ๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ธ ์์ฐ์์ด๊ณ ์ํ๋ฒณ ์๋ฌธ์ ๋๋ '_' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํ์ด๋ ํ๋ฃจ์ ์ต์ ํ ๊ฐ์ ์์์ ์ ์ต๋๋ค.
์ ์ถ๋ ฅ ์
clothes | return |
---|---|
[[yellow_hat, headgear], [blue_sunglasses, eyewear], [green_turban, headgear]] | 5 |
[[crow_mask, face], [blue_sunglasses, face], [smoky_makeup, face]] | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1
headgear์ ํด๋นํ๋ ์์์ด yellow_hat, green_turban์ด๊ณ eyewear์ ํด๋นํ๋ ์์์ด blue_sunglasses์ด๋ฏ๋ก ์๋์ ๊ฐ์ด 5๊ฐ์ ์กฐํฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
1. yellow_hat
2. blue_sunglasses
3. green_turban
4. yellow_hat + blue_sunglasses
5. green_turban + blue_sunglasses
์์ #2
face์ ํด๋นํ๋ ์์์ด crow_mask, blue_sunglasses, smoky_makeup์ด๋ฏ๋ก ์๋์ ๊ฐ์ด 3๊ฐ์ ์กฐํฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
1. crow_mask
2. blue_sunglasses
3. smoky_makeup
์ฝ๋
#include <string>
#include <vector>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, vector<string>> kindMap;
for(int i=0; i<clothes.size(); i++){
string kind = clothes[i][1];
kindMap[kind].push_back(clothes[i][0]);
}
map<string, vector<string>>::iterator iter;
for(iter=kindMap.begin(); iter!=kindMap.end(); iter++){
answer*=(iter->second.size()+1);
}
answer-=1;
return answer;
}
ํ์ด
์ด์ฐจํผ ๋ฌธ์ ์์ ์๊ตฌํ๋ ๋ต์ ๊ฐ ์์์ ์กฐํฉ์ด ์๋ ๊ทธ์ ์กฐํฉ์ ์ด ๊ฐฏ์์ด๋ฏ๋ก, ์์ ์ธ์ฐ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค. ๊ฐ ์ข ๋ฅ์ ์ํ๋ ์์์ ๊ฐฏ์์ 1์ ๋ํ ๊ฐ์ ๋ชจ๋ ๊ณฑํ ํ, 1์ ๋นผ์ฃผ๋ฉด ๋ต์ด ๋์จ๋ค.
ํ ์ข ๋ฅ์ ์์์ด n๊ฐ๋ผ๋ฉด 0๊ฐ ๋ถํฐ n๊ฐ๊น์ง ์์์ ํํ ์ ์์ผ๋ฏ๋ก n+1์ ๊ฒฝ์ฐ์ ์๊ฐ ์๊ธด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ข ๋ฅ๋ง๋ค ์ด๋ฌํ ๊ฒฝ์ฐ์ ์๊ฐ ์๊ธธ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ๊ณฑํด์ฃผ๋ฉด ๋๋ค. ํ์ง๋ง ๋ฌธ์ ์ ์กฐ๊ฑด์ '์คํ์ด๋ ํ๋ฃจ์ ์ต์ ํ ๊ฐ์ ์์์ ์ ์ต๋๋ค'๋ผ๊ณ ๋์์์ผ๋ฏ๋ก ๋ชจ๋ ์ข ๋ฅ์ ์์์ด 0๊ฐ์ธ ํ ๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๋นผ์ฃผ๋ฉด ๋ต์ด ๋๋ค.
map ์ ๊ทผ ์ iterator ์ฌ์ฉํด์ iter->first๋ iter->second๋ก ์ ๊ทผํ๊ธฐ
์ฑ์ ๊ฒฐ๊ณผ
๋ค๋ฅธ ์ฌ๋์ ํ์ด
unordered_map์ ์ฌ์ฉํด๋ ๋๋ค.
๋ํ map์์ string์ธ key์ ์ฐ๊ฒฐ๋๋ value๋ฅผ ๊ตณ์ด vector๋ก ํ์ง ์๊ณ int๋ก๋ง ์ฒ๋ฆฌํด์ ๊ฐฏ์๋ง ์ธ๋ ๊ด์ฐฎ๋ค.
Comment