본문 바로가기

Algorithm/자료구조

(C++) - 백준(BOJ) 16499번 : 동일한 단어 그룹화하기

반응형

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

 

16499번: 동일한 단어 그룹화하기

첫째 줄에 단어의 개수 N이 주어진다. (2 ≤ N ≤ 100) 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 10을 넘지 않는다.

www.acmicpc.net

자료구조를 이용한 정렬문제였습니다.

 

풀이방법

 1. 단어의 서순은 중요하지 않으므로 매 단어마다 사전순으로 정렬하여 그 결과를 key로 결정합니다. 이를 map에다 저장해줍니다.

 

 2. 답 출력 : map의 size를 출력해줍니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int n;
map <string,int> m;
int main(){
    cin >> n;
    for(int i = 0; i < n; i++){
        string s;
        cin >> s;
        sort(s.begin(),s.end());
        m[s] = 1;
    }
    cout << m.size();
}