9375 패션왕 신해빈

b4failrise ㅣ 2023. 7. 5. 15:36

문제 포인트

map 자료구조 

 

최대 결과값 크기 고려한 타입(long long)

=> 2^30까지 고려해야 함

=> 2^31 = 2,147,483,648

 

경우의 수

 

해설 코드와 내 코드 비교

최대 결과값 크기 고려한 타입(long long)

테스트 케이스 for 보다 while로 간단 표현

테스트 케이스별 자료구조 초기화를 위해 해설 코드는 변수 재정의를 하고, 내 코드는 map.clear() 함수를 이용해 모든 원소를 지운다.

 

해설 코드

#include <bits/stdc++.h>
using namespace std;
int t, n;
string a, b;
int main(){
    cin >> t;
    while(t--){
        map<string, int> _map;
        cin >> n;
         for(int i = 0; i < n; i++){
            cin >> a >> b;
            _map[b]++;
        }
        long long ret = 1;
        for(auto c : _map){
            ret *= ((long long)c.second + 1);
        }
        ret--;
        cout << ret << "\n";
    }
    return 0;
}

 

내 코드

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

map<string, int> m;
int main(){
	int t, n;
	int ret = 1;
	string a, b;
	cin >> t;
	for(int i = 0; i < t; i++){
		ret = 1;
		m.clear();
		cin >> n;
		for(int j = 0; j < n; j++){
			cin >> a >> b;
			m[b]++;
		}
		for(auto row : m){
		ret *= (row.second+1);
		}
		cout << ret - 1 << endl;
	}
	
}

'알고리즘 문제풀이' 카테고리의 다른 글

2559 수열  (0) 2023.07.05
9996 한국이 그리울 땐 서버에 접속하지  (0) 2023.07.04
1159 농구 경기  (0) 2023.07.04
2979 트럭 주차  (0) 2023.07.04