Algorithm/백준과 프로그래머스
[C++] 2751. 수 정렬하기 2
young_3060
2023. 7. 6. 15:15
728x90

단순한 sorting 문제로, 직접 구현해도 되지만 나는 간단하게 STL의 sort 함수를 이용했다.
#include <iostream>
#include <algorithm>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int arr[N];
for(int i=0; i<N; i++) cin >> arr[i];
sort(arr, arr+N);
for(auto x : arr) cout << x << "\n";
return 0;
}
❗️ endl 주의
너무 단순한 코드인데 시간초과가 나길래 원인을 검색해봤더니 두가지 놓친 점이 있었다.
- ios::sync_with_stdio(false);
- cout << endl;
cout의 경우 endl이 나올 때마다 버퍼를 비우는 등의 부하가 발생하기 때문에 시간 초과가 나온다면 "\n"으로 줄바꿈해주자.
여담) 바보같이 출력에서 수는 중복되지 않는다고 봐서 이 간단한 문제를 중복없이 sorting해놓는 알고리즘을 짜놓아서 두번이나 틀렸다.ㅋㅋ
별 코드는 아니지만 중복없이 sorting하는 코드를 만들어 놓은 김에 첨부한다.
바보.. 코딩테스트에서는 문제 잘 읽자.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void) {
int N;
vector<int> arr;
cin >> N;
for(int i=0; i<N; i++) {
int a;
cin >> a;
arr.push_back(a);
}
sort(arr.begin(), arr.end());
arr.erase(std::unique(arr.begin(), arr.end()), arr.end());
for(auto x : arr) cout << x << endl;
return 0;
}
728x90