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 |
Tags
- DP
- sort
- 알고리즘
- dfs
- 그리디
- 포스코 ai 교육
- 컴퓨팅사고
- 딥러닝
- 코딩테스트
- BFS
- 초소형머신러닝
- 자료구조
- 포스코 AI교육
- DP문제
- 코테
- dfs문제
- 삼성역량테스트
- 임베디드 딥러닝
- 포스코 교육
- MCU 딥러닝
- 코테 문제
- 삼성코테
- 삼성역테
- bfs문제
- 삼성코딩테스트
- tinyml
- 다이나믹프로그래밍
- TensorFlow Lite
- 영상처리
- tflite
Archives
- Today
- Total
코딩뚠뚠
[백준문제풀이] 2751 수 정렬하기 2 본문
반응형
풀이일시 : 2020-07-30
문제 :
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력 :
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
ex)
5
5
4
3
2
1
출력 :
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
ex)
1
2
3
4
5
풀이 :
수의 개수가 100만 이하라는 것에 주목하자.
-> O(N^2) 의 시간복잡도를 가지는 정렬 알고리즘을 사용하게되면 100만 * 100만 = 1조 까지 나올 수 있다. 하지만 시간제한이 1초이기 때문에 대략 이정도의 시간에는 1억 이내로 끝내야 한다.
-> 때문에 O(N*logN) 으로 해결해야 할 것이다. 퀵정렬을 이용하자.
-> but 퀵정렬도 최악의 경우에는 O(N^2)가 나오므로 보장할 수 없다.
-> o(N*logN)을 보장하는 stl 라이브러리 중 sort()함수를 사용하자
시간복잡도 O(N*logN)
#include <stdio.h>
#include <algorithm>
using namespace std;
int number, data1[1000000];
int main() {
scanf("%d", &number);
for (int i = 0; i < number; i++) {
scanf("%d", &data1[i]);
}
sort(data1, data1 + number);
for (int i = 0; i < number; i++) {
printf("%d\n", data1[i]);
}
return 0;
}
반응형
'알고리즘 문제풀이 > 백준문제풀이' 카테고리의 다른 글
[백준문제풀이] 10989 수 정렬하기 3 (0) | 2020.12.29 |
---|---|
[백준문제풀이] 1431 시리얼번호 (0) | 2020.12.29 |
[백준문제풀이] 1181 단어정렬 (0) | 2020.12.29 |
[백준문제풀이] 2750 수 정렬하기 (0) | 2020.12.29 |
[백준문제풀이] 2752 세수정렬 (0) | 2020.12.29 |