๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

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

by nitronium102 2022. 7. 10.

๋ฌธ์ œ

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

์ž…๋ ฅ

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

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

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

์ถœ๋ ฅ

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

 

ํ’€์ด

map์„ ์‚ฌ์šฉํ•œ ๋ฌธ์ œ

1. ๊ฐ ์˜์ƒ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ์˜์ƒ์˜ ๊ฐ€์ง“์ˆ˜ +1

2. ์ข…๋ฅ˜ ๊ฐœ์ˆ˜๋งŒํผ iter๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์ƒ์„ ์ž…๋Š” ๊ฒฝ์šฐ์™€ ์•ˆ ์ž…๋Š” ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ณ„์‚ฐ

3. ๋งˆ์ง€๋ง‰์— ์•Œ๋ชธ์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธ

#include <iostream>
#include <map>
using namespace std;

int main() {
    int n, t;
    string type, outfit;

    cin >> n;
    while(n--){
        cin >> t;

        // ์˜ท์˜ ์ข…๋ฅ˜, ์ˆซ์ž๋ฅผ ์ €์žฅ
        map<string, int> m;
        while (t--){
            cin >> outfit >> type;
            m[type]++;
        }

        // ์—ฐ์‚ฐ
        int ans = 1;
        for (auto iter = m.begin(); iter != m.end(); iter++)
            ans *= (iter->second + 1);

        // ์•Œ๋ชธ์ธ ๊ฒฝ์šฐ ์ œ์™ธ
        cout << ans - 1 << "\n";
    }
}

๋Œ“๊ธ€