티스토리 뷰
요약
- sort를 이용한 vector 정렬
풀이과정
1. 값 입력
주어지는 값을 string으로 저장하여 한자리씩 vector에 넣는다. 이때 저장은 int로 다시 바꾸기 위해 '0'을 빼준다.
string num = "";
getline(cin,num);
vector<int> vec;
for(char c : num) {
vec.push_back(c-'0');
}

2. 값 정렬
이후 벡터를 정렬하기 위해 sort를 사용한다.
sort
sort는 algorithm STL Header에 속해있다.
sort(vec.begin(),vec.end(),greater<int>());
두 인자(시작과 끝)만 넣으면 default로 오름차순 정렬이 된다.
이 문제는 내림차순을 요구하기 때문에 세번째 parameter로 greater<int>()를 넣는다.

3. 값 출력
for(int item : vec) {
cout << item;
}
코드
#define LOCAL
#include <bits/stdc++.h>
using namespace std;
int main() {
#ifdef LOCAL
freopen("input.txt","r",stdin);
#endif
cin.tie(0) -> sync_with_stdio(0);
string num = "";
getline(cin,num);
vector<int> vec;
for(char c : num) {
vec.push_back(c-'0');
}
sort(vec.begin(),vec.end(),greater<int>());
for(int item : vec) {
cout << item;
}
}

다른 사람의 풀이
다른 방법의 풀이는 발견하지 못했다.
'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글
| [C++]1764번: 듣보잡 (0) | 2023.03.05 |
|---|---|
| [C++]1541번: 잃어버린 괄호 (0) | 2023.02.26 |
| [C++] 1181번: 단어 정렬 (0) | 2023.02.26 |
| [C++]9020번: 골드바흐의 추측 (0) | 2022.10.26 |
| [C++]1929번: 소수 구하기 (0) | 2022.10.26 |