728x90
0. 주어진 문제 |
수 정렬하기 3 성공
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
1. 풀이 |
1) counting sort를 활용해서 정렬해보았다.
2) 계속 런타임오류가 발생하길래 iostream 대신에 stdio.h로 바꾸어 구현하니 완성시킬 수 있었다.
2. 소스코드 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int count[10001]; int main() { int n, i, input; scanf("%d", &n); for (i = 0;i<n;i++) { scanf("%d",&input); count[input]++; } for (i = 1;i < 10001;i++) { if(count[i]) { for (int t = 0;t < count[i];t++) { printf("%d\n",i); } } } } | cs |
3. 문제 출처 |
https://www.acmicpc.net/problem/10989
4. 참고 |
'<백준> > |c++| normal' 카테고리의 다른 글
백준 10828 - 스택 (0) | 2019.03.14 |
---|---|
백준 1427 - 소트인사이드 (0) | 2019.03.05 |
백준 2751 - 수 정렬하기2(합병정렬(Merge sort), 힙정렬(heap sort)) (0) | 2019.02.26 |
백준 1316 - 그룹 단어 체커(ascii활용) (0) | 2019.02.17 |
백준 1157 - 단어 공부(string을 활용해 기본 문자열과 비교) (0) | 2019.02.17 |