728x90
0. 주어진 문제 |
소트인사이드 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 12404 | 7284 | 6402 | 60.175% |
문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
입력
첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
1. 풀이 |
1) counting sort를 활용해 숫자의 등장 횟수를 카운트 해주었다.
2) 출력하는 함수를 따로 구현하여 카운트 횟수만큼 출력을 해주었다.
2. 소스코드 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include<iostream> #include<string> int count[10]; void counting_sort(const int request) { int copy(request); while (copy) { count[copy % 10]++; copy /= 10; } } void print_descending_order(const int request) { int n = std::to_string(request).length(); for (int i = 9;i >= 0;i--) { for (int t = 0;t < count[i];t++) { std::cout << i; } } } int main() { int input; std::cin >> input; counting_sort(input); print_descending_order(input); return 0; } | cs |
3. 문제 출처 |
https://www.acmicpc.net/problem/1427
4. 참고 |
'<백준> > |c++| normal' 카테고리의 다른 글
[C++] 백준 9012 - 괄호(스택 활용) (0) | 2019.03.14 |
---|---|
백준 10828 - 스택 (0) | 2019.03.14 |
백준 10989 - 수 정렬하기 3(counting sort) (0) | 2019.02.26 |
백준 2751 - 수 정렬하기2(합병정렬(Merge sort), 힙정렬(heap sort)) (0) | 2019.02.26 |
백준 1316 - 그룹 단어 체커(ascii활용) (0) | 2019.02.17 |