문제 풀이/BOJ 문제 풀이

[BOJ알고리즘, C++]#1181 단어 정렬

Hardii2 2022. 2. 2. 20:41

[BOJ 알고리즘, C++] #1181 단어 정렬

 

BOJ 알고리즘 문제 풀이, 1181번 문제 : 단어 정렬

입력받은 단어들을 우선 길이 순으로 정렬, 길이가 같다면 사전 순으로 정렬

 

 


 

문제

 

 

풀이 과정

 

1. string 타입을 담을 vector 생성

2. 정렬 함수 정의, a.length 와 b.length를 먼저 비교, 같다면 a < b로 설정

3. String의 경우, sort 함수는 기본적으로 사전 순으로 정렬합니다.

 

코드 작성
#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <string>
using namespace std;

bool comp (string a, string b)
{
    if(a.length() == b.length()) return a<b;
    return a.length() < b.length();
}

int main ()
{
    int N;
    cin >> N;
    
    string str;
    vector<string> v;

    for(int i=0; i<N; i++)
    {
        cin >> str;
        v.push_back(str);
    }
    
    sort(v.begin(), v.end(), comp);

    cout << v[0] << '\n';
    for(int i=1 ;i<N; i++)
    {
        if(v[i-1] == v[i])
            continue;
        cout << v[i] << '\n';
    }
}