-
BOJ 9375: 패션왕 신해빈알고리즘 2023. 7. 12. 19:04
#BOJ 9375: 패션왕 신해빈
9375번: 패션왕 신해빈
첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.
www.acmicpc.net
#풀이
해빈이의 옷들을 입력받아 알몸 상태가 되지 않은 경우의 수를 구하는 문제이다.
같은 종류의 옷은 2개이상 입을 수 없다.
같은 종류의 옷 개수가 몇개인지 중요하다.
같은 종류의 옷 개수를 구한 뒤 +1을 하여 곱하면 된다.
입지 않는 경우의 수도 있기 때문에 +1을 해야한다.
예제1)
헤드기어 2개
안경 1개
(헤드기어) (안경)
미착용 미착용
헤드1 안경1
헤드2
{미착용,미착용}
{미착용,안경1}
{헤드1,미착용}
{헤드1,안경1}
{헤드2,미착용}
{헤드2,안경1}
= (헤드기어 개수 + 1) * (안경 개수 + 1)
이렇게 6가지의 경우의 수를 구할 수 있다. 알몸인 경우를 제외해야 하므로 -1 을 해야한다.
#코드
#include<iostream> #include<unordered_map> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int t, n; cin >> t; for (int i = 0; i < t; i++) { unordered_map<string, int> cloth; int ans = 1; cin >> n; for (int j = 0; j < n; j++) { string str1, str2; cin >> str1 >> str2; if (cloth.find(str2) == cloth.end()) { cloth.insert({ str2, 1 }); } else { cloth[str2]++; } } for (auto a : cloth) { ans = ans * (a.second+1); } cout << ans-1<< '\n'; } return 0; }
'알고리즘' 카테고리의 다른 글
BOJ 1351: 무한 수열 (0) 2023.07.13 BOJ 20166: 문자열 지옥에 빠진 호석 (0) 2023.07.12 BOJ 17219: 비밀번호 찾기 (0) 2023.07.12 BOJ 13414: 수강신청 (0) 2023.07.12 BOJ 1620: 나는야 포켓몬 마스터 이다솜 (0) 2023.07.12