개인 공부/코딩테스트
[C++][백준 1427][정렬] 소트인사이드 :: seoftware
seowit
2020. 2. 29. 16:04
문제
https://www.acmicpc.net/problem/1427
1427번: 소트인사이드
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
소스코드
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
bool desc(int a, int b) {
return a > b;
}
int main(void) {
string s;
cin >> s;
int len = s.length();
vector<int> arr(len);
for (int i = 0; i < len; i++) {
arr[i] = s[i]-'0';
}
sort(arr.begin(), arr.end(), desc);
for (int i = 0; i < len; i++) {
cout << arr[i];
}
}
포인트 1. 숫자를 string으로 받았을 때 int로 바꾸려면 - '0' 을 해주면 된다.
포인트 2. 내림차순으로 정렬하고 싶을 때는 desc 함수를 만들어서 사용하면 된다. 원래 greater<int>()를 사용하면 됐었는데 왜 안되는지 모르겠다.