백준[baekjoon]/C언어

백준(baekjoon) [C] - 1427번: 소트인사이드

_KTH_ 2023. 2. 10. 17:29
728x90

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

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net


~~ 1 ~~

#include <stdio.h>  // 소트인사이드
#include <stdlib.h>
#include <string.h>

int main()
{
	char n[11];
	gets(n);

	int counting[10] = { 0, };
	for (int i = 0; i < strlen(n); i++)
	{
		counting[n[i] - '0']++;
	}

	for (int i = 9; i >= 0; i--)
	{
		for (int j = 0; j < counting[i]; j++)
		{
			printf("%d", i);
		}
	}

	return 0;
}

~~ 2 ~~

#include <stdio.h>  // 소트인사이드
#include <stdlib.h>
#include <string.h>

int main()
{
	char n[11];
	gets(n);

	// 삽입정렬
	int j, temp;
	for (int i = 1; i < strlen(n); i++)
	{
		temp = n[i];
		for (j = i - 1; j >= 0 && n[j] < temp; j--)
		{
			n[j + 1] = n[j];
		}
		n[j + 1] = temp;
	}



	// 버블정렬
	/* for (int i = 0; i < strlen(n) - 1; i++)
	{
		for (int j = 0; j < strlen(n) - i - 1; j++)
		{
			if (n[j] < n[j + 1])
			{
				temp = n[j];
				n[j] = n[j + 1];
				n[j + 1] = temp;
			}
		}
	} */

	puts(n);

	return 0;
}

MEMO

-- 리스트의 요소를 정렬하는 것이 아닌 문자열로 받아 정렬하는 점이 포인트

[1]

-- 계수정렬 사용

[2]

-- 삽입정렬, 버블정렬 사용

 

!! 새로운 방식의 정렬 익히기 !!

728x90
728x90