소트인사이드
https://www.acmicpc.net/problem/1427
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 128 MB | 68887 | 44299 | 37018 | 64.656% |
문제
배열을 정렬하는 것은 쉽다. 수가 주어지면,
그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다.
N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
예제 입력 1
2143
예제 출력 1
4321
예제 입력 2
999998999
예제 출력 2
999999998
예제 입력 3
61423
예제 출력 3
64321
예제 입력 4
500613009
예제 출력 4
965310000
출처
알고리즘 분류
입력을 문자열로 받고 해당 문자열의 인덱스 0번부터 마지막까지 순회하면서
해당 숫자의 배열의 값을 1 추가해준다. ex) arr[1]++;
위의 작업을 마친 이후에 arr[9] -> arr[0] 까지 순회하면서 출력해준다.
통과된 코드
#include <iostream>
using namespace std;
string str;
int arr[10];
int main()
{
cin >> str;
for (int i = 0; i < str.length(); i++) arr[str[i] - '0']++;
for (int i = 9; i >= 0; i--) {
for (int j = 0; j < arr[i]; j++) cout << i;
}
return 0;
}


![백준 2774번 (아름다운 수, C++) [BAEKJOON]](https://lycos7560.com/wp-content/uploads/boj-og.png)
![Programmers 72410 신규 아이디 추천 [2021 KAKAO BLIND RECRUITMENT]](https://lycos7560.com/wp-content/uploads/2023/03/programmers.jpg)