[C++] BAEKJOON 10989
수 정렬하기 3
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
코드
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
using namespace std;
int main() {
int arr[10001] = { 0, };
int N, i, j, tmp, max;
scanf("%d", &N);
max = 0;
for (i = 0; i < N; i++) {
scanf("%d", &tmp);
arr[tmp]++;
if (tmp > max) max = tmp;
}
for (i = 0; i <= max; i++) {
for (j = 0; j < arr[i]; j++) printf("%d\n", i);
}
return 0;
}
코멘트
- 모든 값을 배열에 저장하면 메모리 초과.
=> 수를 카운팅 한다. - cin, cout은 느려서 시간 초과.
=> printf, scanf 사용.
=> ios::sync_with_stdio(false); 코드를 main함수 상단에 추가 후 cin, cout사용.
(cpp의 iostream을 c의 stdio와 동기화시켜주는 역할)
=> cin.tie(NULL); ios::sync_with_stdio(false); 코드 추가.
+> iostream과 cstdio는 같이 쓸 수 없다.
+> https://www.acmicpc.net/problem/15552 - endl 대신 '\n' 사용.
+> endl은 버퍼를 flush하기 때문에 느리다.
Author And Source
이 문제에 관하여([C++] BAEKJOON 10989), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyoomi/BAEKJOON-10989저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)