[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';
}
}
'문제 풀이 > BOJ 문제 풀이' 카테고리의 다른 글
[BOJ알고리즘, C++]#15649 N과 M(1), 깊이 정렬, DFS (0) | 2022.02.12 |
---|---|
[BOJ알고리즘, C++]#10814 나이순 정렬 (0) | 2022.02.02 |
[BOJ알고리즘, C++]#11650 좌표 정렬하기 (0) | 2022.02.02 |
[BOJ알고리즘, C++]#1427 소트 인사이드 (0) | 2022.02.02 |
[BOJ알고리즘, C++]#2751 수 정렬하기 2 (0) | 2022.02.02 |