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 주의

너무 단순한 코드인데 시간초과가 나길래 원인을 검색해봤더니 두가지 놓친 점이 있었다.

  1. ios::sync_with_stdio(false);
  2. 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

'Algorithm > 백준과 프로그래머스' 카테고리의 다른 글

[C++] 9012. 괄호  (0) 2023.07.14
[C++] 10828. 스택  (0) 2023.07.11
[C++] 11728 : 배열 합치기  (0) 2022.04.12
[C++] 2193 : 이친수  (0) 2022.04.12
[C++] 5576번 콘테스트  (0) 2022.03.22