본문 바로가기
✅ 문제풀이

BOJ-백준 2751번 수 정렬하기 2

by dogfoot.dev 2021. 10. 14.
728x90
728x90

BOJ-백준 2751번 수 정렬하기 2

링크 : https://www.acmicpc.net/problem/2751

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

✅ C++ 정답 코드 입니다. 더보기 클릭!

 

더보기
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
  int number, data[1000000];
  int size;
  cin>>size;
  for(int i = 0 ; i < size ; i ++){
    int x;
    cin >> x;
    data[i] = x;
  }
  // 정렬 Start
  sort(data, data+size);
  for(int i = 0; i <size; i ++){
    cout << data[i] << "\n";
  }
  return 0;
}

📌 해설

데이터 갯수가 1,000,000개까지 주어 질 수 있으므로 힙정렬, 병합정렬로 해결할 수 있는 기초 정렬 문제 입니다. 

 

 

🚩참고

C++에서는 algorithm 헤더를 include하여 sort를 사용해 정렬할 수 있습니다.

sort는 quick sort를 기반으로 정렬하지만 최악의 경우 O(n^2)이 아닌 O(nlogn)을 보장하고 있으므로

통과할 수 있었습니다.

 

int number, data[1000000];
  int size;
  cin>>size;
  for(int i = 0 ; i < size ; i ++){
    int x;
    cin >> x;
    data[i] = x;
  }

1. size를 입력받고, size만큼 반복하는 for문을 작성한 뒤, data를 입력받습니다. 

 

 

// 정렬 Start
  sort(data, data+size);
  for(int i = 0; i <size; i ++){
    cout << data[i] << "\n";
  }
  return 0;

2. sort하고 결과를 출력합니다. 

 

 

728x90
반응형