백준[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