본문 바로가기
Algorithm/BackJoon

2751번: 수 정렬하기 2

by 꼬부기가우는소리 2023. 6. 6.
728x90

 

- 관련 사이트: https://www.acmicpc.net/problem/2751

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

"N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오."

"시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 병합 정렬, 힙 정렬 등이 있지만, 어려운 알고리즘이므로 지금은 언어에 내장된 정렬 함수를 쓰는 것을 추천드립니다."

 

입력된 숫자를 정렬하는 문제이다.

vector를 사용하여 값을 저장하고 C++ 내장 함수, sort 함수를 사용하여 정렬해주었다.

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    vector<int> lst;
    int N, num;
    cin >> N;
    
    for (int i = 0; i < N; i++)
    {
        cin >> num;
        lst.push_back(num);
    }
    
    sort(lst.begin(), lst.end());
    
    for (int i = 0; i < N; i++)
    {
        cout << lst[i] << "\n";
    }
    return 0;
}

- 언어: 8176 KB

- 시간: 676 ms

- 코드 길이: 377 B

 

 

아래는 배열을 통해 구현해준 코드이다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int lst[1000000];
    int N;
    cin >> N;
    
    for (int i = 0; i < N; i++)
        cin >> lst[i];
    
    sort(lst, lst + N);
    
    for (int i = 0; i < N; i++)
        cout << lst[i] << "\n";
    return 0;
}

- 메모리: 5804 KB

- 시간: 660 ms

- 코드 길이: 296 B

 

 

* 연관 문제

- 2750번: 수 정렬하기

- 11650번: 좌표 정렬하기

- 11651번: 좌표 정렬하기 2

728x90

'Algorithm > BackJoon' 카테고리의 다른 글

2587번: 대표값2  (0) 2023.06.07
10989번: 수 정렬하기 3  (0) 2023.06.06
11650번: 좌표 정렬하기  (0) 2023.06.05
11651번: 좌표 정렬하기 2  (0) 2023.06.05
9935번: 문자열 폭발  (0) 2023.06.04

댓글