본문 바로가기
알고리즘/BAEKJOON

BOJ 2751 : 수 정렬하기 2 with 계수 정렬 (Counting Sort)

by 피로물든딸기 2023. 1. 22.
반응형

알고리즘 문제 전체 링크

 

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

 

 

주어지는 숫자가 -1,000,000 ~ 1,000,000이기 때문에 0 ~ 2,000,000으로 바꾼다.

그리고 a[0 ~ 2,000,000]에는 각 원소의 개수를 증가시키고,

출력할 때는 작은 값부터 원소의 개수만큼 출력하고 다음으로 넘어간다.

#include <stdio.h>

#define MINUS (1000000)

int N;
int a[1000000 + MINUS + 1000];

int main(void)
{
	scanf("%d", &N);

	for (int i = 0; i < N; i++)
	{
		int tmp;
		scanf("%d", &tmp);
		a[tmp + MINUS]++;
	}
	
	for (int i = 0; i <= 1000000 + MINUS; i++)
	{
		while (a[i])
		{
			printf("%d\n", i - MINUS);
			a[i]--;
		}
	}

	return 0;
}
반응형

'알고리즘 > BAEKJOON' 카테고리의 다른 글

BOJ 13547 : 수열과 쿼리 5  (0) 2023.02.07
BOJ 8983 : 사냥꾼  (0) 2023.01.25
BOJ 6549 : 히스토그램에서 가장 큰 직사각형  (0) 2023.01.20
BOJ 3653 : 영화 수집  (0) 2023.01.20
BOJ 1395 : 스위치  (0) 2023.01.19

댓글