๐Ÿ’  BOJ/Class 3

[BOJ][C++] ๋ฐฑ์ค€ 9375๋ฒˆ: ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ

์„ ๋‹ฌ 2023. 3. 31. 23:15
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/9375

 

9375๋ฒˆ: ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ

์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” headgear์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด hat, turban์ด๋ฉฐ eyewear์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด sunglasses์ด๋ฏ€๋กœ   (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)๋กœ ์ด 5๊ฐ€์ง€ ์ด๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ

ํ•ด๋นˆ์ด๋Š” ํŒจ์…˜์— ๋งค์šฐ ๋ฏผ๊ฐํ•ด์„œ ํ•œ๋ฒˆ ์ž…์—ˆ๋˜ ์˜ท๋“ค์˜ ์กฐํ•ฉ์„ ์ ˆ๋Œ€ ๋‹ค์‹œ ์ž…์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜ค๋Š˜ ํ•ด๋นˆ์ด๊ฐ€ ์•ˆ๊ฒฝ, ์ฝ”ํŠธ, ์ƒ์˜, ์‹ ๋ฐœ์„ ์ž…์—ˆ๋‹ค๋ฉด, ๋‹ค์Œ๋‚ ์€ ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ์•ˆ๊ฒฝ๋Œ€์‹  ๋ Œ์ฆˆ๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผํ•œ๋‹ค. ํ•ด๋นˆ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ์ฃผ์–ด์กŒ์„๋•Œ ๊ณผ์—ฐ ํ•ด๋นˆ์ด๋Š” ์•Œ๋ชธ์ด ์•„๋‹Œ ์ƒํƒœ๋กœ ๋ฉฐ์น ๋™์•ˆ ๋ฐ–์— ๋Œ์•„๋‹ค๋‹ ์ˆ˜ ์žˆ์„๊นŒ?

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์ตœ๋Œ€ 100์ด๋‹ค.

  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ํ•ด๋นˆ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜ n(0 ≤ n ≤ 30)์ด ์ฃผ์–ด์ง„๋‹ค.
  • ๋‹ค์Œ n๊ฐœ์—๋Š” ํ•ด๋นˆ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ด๋ฆ„๊ณผ ์˜์ƒ์˜ ์ข…๋ฅ˜๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์˜์ƒ์€ ํ•˜๋‚˜๋งŒ ์ž…์„ ์ˆ˜ ์žˆ๋‹ค.

๋ชจ๋“  ๋ฌธ์ž์—ด์€ 1์ด์ƒ 20์ดํ•˜์˜ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์œผ๋ฉฐ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์˜์ƒ์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ํ•ด๋นˆ์ด๊ฐ€ ์•Œ๋ชธ์ด ์•„๋‹Œ ์ƒํƒœ๋กœ ์˜์ƒ์„ ์ž…์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

ํ’€์ด

์ค‘๊ณ ๋”ฉ๋•Œ ํ–ˆ๋˜ ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

์‚ฌ์‹ค ํ™•ํ†ต๊นŒ์ง€ ๊ฐˆ ํ•„์š”๋„ ์—†์ด ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ตฌํ•˜๊ธฐ๋‹ค

 

์ƒ์˜4๋ฒŒ ํ•˜์˜3๋ฒŒ์ด ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด?

๊ฐ๊ฐ์˜ ์˜ท์„ ์•ˆ์ž…๋Š” ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•˜์—ฌ (์™œ ์•ˆ์ž…๋Š”๊ฑฐ์ง€...) ๊ณฑํ•ด์ฃผ๊ณ  => (4+1) * (3+1) 

์ „๋ถ€ ์•ˆ์ž…์€ ๊ฒฝ์šฐ๋ฅผ ๋บ€๋‹ค => -1

 

์ฆ‰ ๊ฐ ์ข…๋ฅ˜์˜ ์˜ท์ด ๋ช‡๊ฐœ์ธ์ง€๋งŒ ์นด์šดํŠธํ•˜๊ณ , ํ•ด๋‹น ์ˆ˜๋“ค์— 1์”ฉ ๋”ํ•œ ๊ฐ’๋“ค์„ ๋‹ค ๊ณฑํ•˜๋ฉด ๋‹ต์ด ๋‚˜์˜จ๋‹ค.

๊ฐ ์ข…๋ฅ˜์˜ ์˜ท์„ ์นด์šดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ๊ตฌ์กฐ map ์„ ์ด์šฉํ•˜์˜€๋‹ค.

 

#include <iostream>
#include <map>

using namespace std;


int main() {
    int t, n;
    cin >> t;
    
    string name, type;
    while(t--) {
        map<string, int> m;
        cin >> n;
        
        // ์ž…๋ ฅ
        while(n--) {
            cin >> name >> type;
            if(m.find(type) != m.end()) {
                m[type]++;
            } else {
                m[type] = 1;
            }
        }
        
        // ์—ฐ์‚ฐ
        int answer = 1;
        for(auto iter=m.begin(); iter != m.end(); iter++) {
            answer *= iter -> second + 1;
        }
        answer--;
        
        // ์ถœ๋ ฅ
        cout << answer << "\n";
    }
    
    return 0;
}
๋ฐ˜์‘ํ˜•