728x90
https://www.acmicpc.net/problem/9375
수학 C++
접근방법
처음엔 조합으로 풀어보려고 했다. 옷을 한개 골랐을 때 ~ cnt(종류의 수)까지의 모든 의상의 조합을 구한 다음에
종류별 옷의 개수를 곱한 뒤 모든 값을 더하려고 했다.
하지만 코드가 너무 복잡해졌다. 포기
이 문제의 가장 큰 힌트는 그 종류의 옷을 안 입는 경우를 추가해서 경우의 수를 구하는 것이다.
그리고 마지막에 아무것도 안입는 경우(1개)를 빼면 된다.
아주 간단한 문제였다.. 진짜 확통 헛배웠나.
앞으로 수학문제가 풀기 싫어지는 문제였다.
근데 제출하니까 틀렸습니다 뜨는 거에요.
한 두번 제출했는데 마지막에 개행문자를 안썼다는걸 깨달음.
개행문자 때문에 틀린게 2번째 본인한테 화가 나기 시작
다 풀고 나서 보니까 맵 쓰라고 하던데 맵은 안씀 아주 원시적으로 품
아무튼 소스코드
#include <iostream>
#include <string>
using namespace std;
int main(){
int c,n;
cin >> c;
for(int i = 0 ; i < c ; i++){
//테스트 케이스
string name;
int clothes[30] = {0,};
string cate[30];
string catego;
int cnt = 0;
bool isin = false;
cin >> n;
for(int j = 0 ; j < n ; j++){
cin >> name >> catego;
isin = false;
for(int k = 0 ; k < cnt; k++){
if(cate[k] == catego){
clothes[k]++;
isin = true;
}
}
if(!isin){
//종류 추가
cate[cnt] = catego;
clothes[cnt++]++;
}
}
int result = 1;
for(int s = 0 ; s < cnt ; s++){
result *= (clothes[s]+1);
}
cout << result - 1 << "\n";
}
return 0;
}
728x90
'알고리즘 문제풀이' 카테고리의 다른 글
[백준 3036] 알고리즘 32일차 : 링 (0) | 2020.07.28 |
---|---|
[백준 9663] 알고리즘 31일차 : N-Queen (0) | 2020.07.27 |
[백준 1912] 알고리즘 29일차 : 연속합 (0) | 2020.07.24 |
[백준 10828] 알고리즘 28일차 : 스택 (0) | 2020.07.22 |
[백준 2609] 알고리즘 27일차 : 최대공약수와 최소공배수 (0) | 2020.07.21 |