알고리즘 이론/백준

[백준] 1427 소트인사이드 c++

senyalog 2021. 6. 26. 00:49

1427. 소트인사이드

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

이 문제는 굉장히 쉽다. 입력받은 후 정렬만하면 끝이다!

문제가 아무리 쉬워도 우리가 확인할 것이 있다. 바로 N의 범위!!!

N은 1,000,000,000보다 작거나 같은 자연수이다. 때문에 int를 사용할 수 있다. long long을 사용해야하는 경우가 있을 수 있으니 항상 입력의 범위를 잘 확인하자!

 

이 문제는 앞서 풀이를 올렸던 문제들의 코드를 합치면 된다.

가장 먼져 N을 입력받고, 각 자리 수를 벡터에 저장한다.

	cin >> num;
	while (num > 0) {
		v.push_back(num % 10);
		num /= 10;
	
	}

각 자리의 수를 이용하는 문제에서 자주 사용되는 코드이므로 머릿속에 저장하자.

배열에 각 자리의 수를 저장을 했다면 이를 정렬한다. 정렬은 sort()또는 reverse()를 이용한다.

더보기

코드:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> v;


int main() {
	ios::sync_with_stdio(0);
	cout.tie(); cin.tie();
	long long num;
	cin >> num;
	while (num > 0) {
		v.push_back(num % 10);
		num /= 10;
	
	}
	sort(v.rbegin(), v.rend());
	for (int i = 0; i < v.size(); i++) {
		cout << v[i];
	
	}
}