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

2024. 9. 30. 14:42코딩테스트

소트인사이드

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB 104243 68257 56404 65.792%

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

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

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

 


선택 정렬을 통해 내림차순 정렬을 한다.

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	string N;
	cin >> N;

	vector<int> list(N.size());
	int index = 0;

	//스트링으로 받아와 배열로 바꾸기
	for (int i = 0; i < N.size(); i++)
	{
		list[i] = N[i] - '0';
	}

	//index가 배열의 마지막까지 돌도록 반복한다. 값을 비교해 서로 위치를 스왑한다.
	//이후 정렬된 인덱스를 제외하고 반복 한다.
	while (index < N.size() - 1)
	{
		for (int i = index; i < N.size(); i++)
		{
			if (N[index] < N[i])
			{
				swap(N[index], N[i]);
			}
		}

		index++;
	}

	for (int i = 0; i < N.size(); i++)
	{
		cout << N[i];
	}
}

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

 

'코딩테스트' 카테고리의 다른 글

[백준] 수 정렬하기2 c++  (0) 2024.10.10
[백준] ATM c++  (0) 2024.10.01
[백준] 버블 소트 c++  (0) 2024.09.30
[백준] 수 정렬하기  (0) 2024.09.26
[백준] 절대값 힙 c++  (1) 2024.09.26