문제풀이(Problem Solving)

백준, BOJ, 20291번, 파일 정리 : C++ [CPP] ★

게임이 더 좋아 2022. 2. 8. 21:20
반응형
728x170

코딩어렵지 않다.

다만 Count를 하는 문제가 나왔을 때

MAP과 Vector를 자유롭게 쓸 수 있어야 한다고 생각한다.

 

https://www.acmicpc.net/problem/20291

 


 

#맞는 풀이

#include <bits/stdc++.h>

using namespace std;


int N;
vector<string> vec;
map<string, int> m;

int main(){
    cin >> N;
    
    //count는 맵으로 세고
    //정렬은 Vector로 함
    for(int i = 0; i<N; i++){
        string s;
        string target;
        cin >> s;
        for(int i = 0; i<s.size(); i++){
            if(s[i] == '.'){
                target = s.substr(i+1);
                if(m.count(target)){
                    m[target]++;
                }else{
                    m.insert({target, 1});
                }
                break;
            }
            
        }
        vec.push_back(target);
        
    }
    
    sort(vec.begin(), vec.end());
    
    vec.erase(unique(vec.begin(), vec.end()), vec.end());
    
    for(auto x : vec){
        cout << x << ' ' << m[x] << '\n';
    }
    
    
    return 0;
}

 

map.count로 있는지 파악하고

vector로 정렬해서 중복 제거후 출력한다.

 

728x90
반응형
그리드형