๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.2 : ์˜์ƒ/์œ„์žฅ (ํ•ด์‹œ)

https://school.programmers.co.kr/learn/courses/30/lessons/42578

(์›๋ž˜ ๋ฌธ์ œ ์ œ๋ชฉ์ด ์œ„์žฅ์ด์—ˆ๋Š”๋ฐ ์˜์ƒ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค! ๊ตฌํ˜„ ๋‚ด์šฉ์€ ๊ฐ™์Œ)

 

๋ฌธ์ œ ์„ค๋ช…(์œ„์žฅ)

์ŠคํŒŒ์ด๋“ค์€ ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…์–ด ์ž์‹ ์„ ์œ„์žฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ  ์˜ค๋Š˜ ์ŠคํŒŒ์ด๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ข…๋ฅ˜์ด๋ฆ„
์–ผ๊ตด ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค
์ƒ์˜ ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ 
ํ•˜์˜ ์ฒญ๋ฐ”์ง€
๊ฒ‰์˜ท ๊ธด ์ฝ”ํŠธ

์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.


 

๋งŒ๋งŒํ•˜๊ฒŒ ๋ดค๋‹ค๊ฐ€ ํ‹€๋ฆฐ ๋ฌธ์ œ!

๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์‹์„ ์ž˜ ์ƒ๊ฐํ•ด๋ณด์•„์•ผ ํ•œ๋‹ค. 

 

๋‚˜๋Š” ์ฒ˜์Œ์— ์ผ๋‹จ answer์—๋‹ค๊ฐ€ ์˜ท์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋”ํ•˜๊ณ , ์ข…๋ฅ˜์˜ ์ˆ˜๊ฐ€ 2๊ฐœ ์ด์ƒ์ผ ๋•Œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณฑํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณค๋Š”๋ฐ..

ํžˆ๋“  ํ…Œ์ผ€์—์„œ ๋งŽ์ด ํ‹€๋ ธ๋‹ค.

๊ทธ๋ž˜์„œ ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ, ๊ฐ ์ข…๋ฅ˜๋งˆ๋‹ค ์•ˆ ์ž…๋Š” ๊ฒฝ์šฐ๊นŒ์ง€ ํฌํ•จํ•ด์„œ ๊ณฑํ•ด์ค€ ๋‹ค์Œ์—

๋ชจ๋“  ์˜ท์„ ์ž…์ง€ ์•Š๋Š” 1๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๋นผ์ฃผ์—ˆ๋”๋‹ˆ ๋งž์•˜๋‹ค!

 

์—ญ์‹œ ์ˆ˜ํ•™์€ ์‹ซ์–ด,,,

 

 

๋‚˜์˜ ํ’€์ด

#include <string>
#include <vector>
#include <map>
using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    map<string, int> clist;
    
    for(int i=0; i<clothes.size(); ++i){
        clist[clothes[i][1]]++;
    }
    for(auto i : clist){
        answer *= (i.second+1); // ์•ˆ์ž…๋Š”๊ฒฝ์šฐ, 1๋ฒˆ์ž…๋Š”๊ฒฝ์šฐ, 2๋ฒˆ์ž…๋Š”๊ฒฝ์šฐ, ...
    }
    answer --; // ๋ชจ๋‘ ์•ˆ์ž…๋Š” ๊ฒฝ์šฐ ์ œ์™ธ
    
    return answer;
}