Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 메모리풀
- Knapsack
- 큐
- 스택
- 그리디
- 우선순위 큐
- 조합
- BFS
- dfs
- 중복 순열
- MST
- 링크드리스트
- 백트래킹
- 순열
- DP
- SSAFY
- 크루스칼
- 세그먼트 트리
- 빠른 입출력
- 완전 탐색
- 시뮬레이션
- 피보나치 수
- lis
- 분할 정복
- 비트마스크
- 문자열
- 재귀
- 이분 탐색
- BeautifulSoup
- 클래스
Archives
- Today
- Total
작심 24/7
[백준] 10989번 수 정렬하기 3 본문
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
계차수열을 이용하는 문제이다. 그러나 그냥 cin cout을 써서 제출하면 시간 초과가 걸린다.
printf로 바꾸면 되지만 c++ 입출력을 그대로 쓸 거라면
ios_base::sync_with_stdio(false);
-> C 표준 stream과 C++ 표준 stream의 동기화를 끊는다. (c, c++ 입출력 섞어 쓰기 안됨)
-> C++ stream은 독립적인 버퍼를 갖게 된다.
=> 사용하는 버퍼의 수 줄어들어 실행 속도 향상
cin.tie(NULL);
-> cin을 cout으로부터 untie한다.
-> stream을 untie하면 output이 flush되지 않은 채로 user에게 입력을 요구
=> 입출력 stream 버퍼를 모두 확인하는 과정을 거치지 않아 실행 속도 향상
이 두 가지를 추가해주면 해결된다.
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N, num, cnt[10000] = { 0 };
cin >> N;
for (int i = 0; i < N; i++) {
cin >> num;
cnt[num - 1]++;
}
for (int i = 0; i < 10000; i++) {
while (cnt[i] != 0) {
cout << i + 1 << "\n";
cnt[i]--;
}
}
return 0;
}
'백준' 카테고리의 다른 글
[백준] 10814번 나이순 정렬 (0) | 2020.05.23 |
---|---|
[백준] 2108번 통계학 (0) | 2020.05.22 |
[백준] 11729번 하노이 탑 이동 순서 (0) | 2020.05.20 |
[백준] 2447번 별 찍기 - 10 (2) | 2020.05.20 |
[백준] 1002번 터렛 (3) | 2020.05.20 |
Comments