728x90
728x90
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 1
5
5
4
3
2
1
예제 출력 1
1
2
3
4
5
알고리즘 분류
- 정렬
문제 출처
https://www.acmicpc.net/problem/2751
문제 해결 방법
- $n \log n$의 시간 복잡도를 가지는 정렬 알고리즘을 사용해야 풀 수 있는 문제이다.
- 퀵 소트(Quick Sort)로 구현되어 있는 @sort()@ 함수를 이용하여 무난하게 문제를 풀 수 있었다.
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N, num;
vector<int> nums;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
for (int i = 0; i < N; i++) {
cin >> num;
nums.push_back(num);
}
sort(nums.begin(), nums.end()); // 오름차순 정렬
for (int i : nums) {
cout << i << '\n';
}
return 0;
}
채점 결과
참고
- [단계별로 풀어보기] > [정렬]
- 실버V
정렬 방법 별 시간 복잡도
728x90
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ-1541][C++] 잃어버린 괄호 (0) | 2023.02.20 |
---|---|
[BOJ-11399][C++] ATM (0) | 2023.02.09 |
[BOJ-1931][C++] 회의실 배정 (0) | 2023.02.06 |
[BOJ-11047][C++] 동전 0 (2) | 2023.02.06 |
[BOJ-25305][C++] 커트라인 (0) | 2023.02.04 |
[BOJ-2587][C++] 대표값2 (0) | 2023.02.04 |
[BOJ-2750][C++] 수 정렬하기 (0) | 2023.02.04 |
[BOJ-10757][C++] 큰 수 A+B (0) | 2023.02.04 |