https://www.acmicpc.net/problem/9375
๋ฌธ์
ํด๋น์ด๋ ํจ์ ์ ๋งค์ฐ ๋ฏผ๊ฐํด์ ํ๋ฒ ์ ์๋ ์ท๋ค์ ์กฐํฉ์ ์ ๋ ๋ค์ ์ ์ง ์๋๋ค. ์๋ฅผ ๋ค์ด ์ค๋ ํด๋น์ด๊ฐ ์๊ฒฝ, ์ฝํธ, ์์, ์ ๋ฐ์ ์ ์๋ค๋ฉด, ๋ค์๋ ์ ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ์๊ฒฝ๋์ ๋ ์ฆ๋ฅผ ์ฐฉ์ฉํ๊ฑฐ๋ ํด์ผํ๋ค. ํด๋น์ด๊ฐ ๊ฐ์ง ์์๋ค์ด ์ฃผ์ด์ก์๋ ๊ณผ์ฐ ํด๋น์ด๋ ์๋ชธ์ด ์๋ ์ํ๋ก ๋ฉฐ์น ๋์ ๋ฐ์ ๋์๋ค๋ ์ ์์๊น?
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค. ํ ์คํธ ์ผ์ด์ค๋ ์ต๋ 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;
}
'๐ BOJ > Class 3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 11403๋ฒ: ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2023.04.10 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 1389๋ฒ: ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2023.04.03 |
[BOJ][C++] ๋ฐฑ์ค 18870๋ฒ: ์ขํ ์์ถ (0) | 2023.03.30 |
[BOJ][C++] ๋ฐฑ์ค 17219๋ฒ: ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (0) | 2023.03.30 |
[BOJ][C++] ๋ฐฑ์ค 1541๋ฒ: ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2023.03.28 |