글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다

 

목차

     

     


     

     

    [백준 1181번 C/C++] 단어 정렬

     

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

     

    1181번: 단어 정렬

    첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

    www.acmicpc.net


     

    해결전략

     

    set 사용

    • set은 원소를 넣을 때 오름차순으로 정렬되어 들어간다.
    • insert()는 중복 체크 후에 원소가 삽입된다.

     

     


     

    풀이전략 참고

     

    https://chanhuiseok.github.io/posts/algo-46/

     


     

    코드

     

    #include<iostream>
    #include<string>
    #include<set>
    using namespace std;
    
    struct Compare
    {
    	bool operator()(const string& a, const string& b) const
    	{
    		if (a.size() == b.size())
    			return a < b;
    		else
    			return a.size() < b.size();
    	}
    };
    
    int main() {
    	int n;
    	cin >> n;
    
    	set<string, Compare> mySet;
    
    	string input;
    	for (int i = 0; i < n; i++) {
    		cin >> input;
    		mySet.insert(input);
    	}
    
    	for (auto j : mySet)
    		cout << j << "\n";
    
    	return 0;
    }