본문 바로가기
개인 공부/코딩테스트

[C++][백준 1427][정렬] 소트인사이드 :: seoftware

by seowit 2020. 2. 29.

문제

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>()를 사용하면 됐었는데 왜 안되는지 모르겠다.

댓글