[C++] 백준 10989 : 수 정렬하기 3
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char **argv){
int N, x;
scanf("%d",&N);
int cnt[10001] = {0}; // 동적할당 해도 메모리 초과
for(int i=0; i<N; i++){
scanf("%d",&x); // 입력받은 수 다 배열에 저장하면 메모리 초과 -> 숫자를 센 후에 출력만 해주자
cnt[x]++;
}
for(int i=1; i<=10000; i++){ // <= 빼먹지 말기
for(int j=0; j<cnt[i]; j++){
printf("%d\n", i);
}
}
return 0;
}
오늘의 키포인트
- 입력되는 모든 수를 전부 배열에 저장하면 메모리를 초과한다.
- 따라서 입력되는 수의 개수를 세서 개수만큼 출력시킨다. -> 카운팅 정렬
- 10000번째까지면 = 붙이는 것 잊지 말기. 은근 계속 빼먹어서 틀린다.
Author And Source
이 문제에 관하여([C++] 백준 10989 : 수 정렬하기 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lamknh/C-백준-10989-수-정렬하기-3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)