티스토리 뷰

시간 제한메모리 제한제출정답맞힌 사람정답 비율
5 초 (하단 참고) 8 MB (하단 참고) 300115 71355 54568 23.783%

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

#include <stdio.h>
int arr[10001];
int main() {
    int n = 0;
    int num = 0;
    scanf("%d",&n);
    for(int i = 0; i < n ; i++){
      scanf("%d",&num);
      arr[num]++;
    }
    for(int i = 1; i < 10001; i++){
        for(int j = 0; j < arr[i]; j++){
            printf("%d\n", i);
        }
    }
}

그냥 메모리도 넉넉하겠다 처음보자마자 떠오르는게 counting sort라 counting sort로 풀었다.

 

다른 것들로하면 시간제한 걸리는진 모르겠다.

 

edge case 땜에 한 3번 더 틀린듯 ㅎㅎ..

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함