728x90
문제
문제 설명
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
풀이 방식
문제 자체는 쉬워서 풀이할것도 없다.
C++과 같은 경우 vector을 사용해 algorithm.h 에 내장된 sort 함수를 사용해주면 된다.
다만 문제가 되는 부분은 이 부분이다.
// case 1
for (int i = 0; i < n; i++)
cout << v[i] << endl;
// case 2
for (int i = 0; i < n; i++)
cout << v[i] << "\n";
case1 과 같이 코딩을 하게 되면 시간제한에 걸리고 만다..
왜냐면 endl은 개행을 해줄 뿐만 아니라 내부의 버퍼도 함께 비워주기 때문에 시간이 오래걸린다는 단점이 있다.
앞으로는 C++을 쓸때에도 C 스타일의 입출력 방식을 고려해 볼 것 같다..
솔루션
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++)
cin >> v[i];
sort(v.begin(), v.end());
for (int i = 0; i < n; i++)
cout << v[i] << "\n";
}
'Algorism(PS) > 백준' 카테고리의 다른 글
[C++ / 1260] DFS와 BFS (0) | 2023.08.09 |
---|---|
[C++ / 9095] 1, 2, 3 더하기 (0) | 2023.08.08 |
[C++ / 2293] 동전 1 (0) | 2023.08.03 |
[C++ / 11053] 가장 긴 증가하는 부분 수열 (0) | 2023.07.30 |
[C++ / 2012] 등수 매기기 (0) | 2023.07.29 |