www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

#include <iostream>
using namespace std;

// 입력된 숫자의 갯수를 담을 배열
int nums[10001];

int main(void)
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);

  int n = 0 ;
  cin >> n;
  int data;
  // 입력된 숫자를 인덱스로 써서 갯수 증가
  for(int i = 0 ; i < n ; i++)
  {
    cin >> data;
    nums[data]++;
  }
  // 1~10000 까지 순서대로 저장된 갯수 만큼 출력
  for(int idx = 1 ; idx <= 10000 ; idx++)
  {
    for(int i = 0 ; i < nums[idx] ; i++)
    {
      cout << idx << '\n';
    }
  }
}

 

[Try]

1. 메모리가 8mib 밖에 안되니까 전부 입력할 수는 없고, 최대 10000까지인 자연수니까 배열에 갯수를 넣으면 될 것 같다.

 

[Point]

1. 다들 이렇게 푼 것 같아서.. 딱히 뭐 없다.

 

[More]

1. 카운팅 소트

2. 머지 소트 트리

3. 세그먼트 트리

'PS > BOJ' 카테고리의 다른 글

[백준] 1654.cpp : 랜선 자르기  (0) 2020.05.16
[백준] 2448.py : 별 찍기 - 11  (0) 2020.05.16
[백준] 2108.cpp : 통계학  (0) 2020.05.15
[백준] 11651.cpp : 좌표 정렬하기 2  (0) 2020.05.14
[백준] 7568.cpp : 덩치  (0) 2020.05.14

+ Recent posts