mang_dev
맹꽁거리는 개발자
mang_dev
전체 방문자
오늘
어제
  • 분류 전체보기 (185)
    • Frontend (2)
      • Next.js (1)
    • Backend (3)
      • GraphQL (2)
    • Book (1)
      • 기타 (1)
    • Old (177)
      • 알고리즘 퍼즐 (1)
      • 백준 (131)
      • 프로그래머스 (0)
      • Codility (15)
      • LeetCode (7)
      • Codewars (1)
      • Codeforces (0)
      • Django (6)
      • React (2)
      • Naver Map Api (3)
      • Web UI (4)
      • Introduction to Cloud (2)
hELLO · Designed By 정상우.
mang_dev

맹꽁거리는 개발자

백준 10989번 수 정렬하기3 // C++
Old/백준

백준 10989번 수 정렬하기3 // C++

2020. 2. 14. 23:41

문제

 

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

입력

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

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 


 

풀이

 

수의 개수가 1천만까지 있어서 그 크기만큼 배열을 선언하거나, 하나씩 벡터에 집어넣으면 메모리 초과가 발생한다.

 

하지만 문제에서 수의 크기가 1만보다 작거나 같다고 했으므로, 10,000 크기의 배열을 선언하여 각 index의 수가 얼마나 나오는지 세고 출력하면 된다.

 

N이 1천만까지이므로 입/출력시 cin과 cout을 쓰면 시간 초과가 발생할 수 있으니 주의!

 


 

코드

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

using namespace std;

int main() {
	int N;
	cin >> N;
	vector<int> v(10001);

	for (int i = 0; i < N; i++) {
		int num;
		scanf("%d", &num);
		v[num]++;
	}

	for (int i = 1; i <= 10000; i++) {
		for (int j = 0; j < v[i]; j++) {
			printf("%d\n", i);
		}
	}
}
저작자표시 (새창열림)

'Old > 백준' 카테고리의 다른 글

백준 14496번 그대, 그머가 되어 // C++  (0) 2020.02.16
백준 2877번 4와 7 // C++  (0) 2020.02.16
백준 7568번 덩치 // C++  (0) 2020.02.14
백준 15829번 Hashing // C++  (0) 2020.02.14
백준 14499번 주사위 // C++  (0) 2020.02.14
    'Old/백준' 카테고리의 다른 글
    • 백준 14496번 그대, 그머가 되어 // C++
    • 백준 2877번 4와 7 // C++
    • 백준 7568번 덩치 // C++
    • 백준 15829번 Hashing // C++
    mang_dev
    mang_dev

    티스토리툴바