PS (C, C++)

[백준/C & C++] 1427 소트인사이드

최연재 2022. 8. 26. 01:06

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

 

1427번: 소트인사이드

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

www.acmicpc.net

코드 (C)

#include <stdio.h>

void swap(int* a, int* b)
{
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

int main()
{
	long long input;
	int arr[11], i=0;
	scanf("%lld", &input);
	while (input > 0)
	{
		arr[i] = input % 10;
		input /= 10;
		i++;
	}

	for (int j = 0; j < i-1; j++)
	{
		for (int k = 0; k < i - 1 - j; k++) if (arr[k] < arr[k + 1]) swap(&arr[k], &arr[k + 1]);
	}

	for (int k = 0; k < i; k++) printf("%d", arr[k]);
	return 0;
}

코드 (C++)

#include <iostream>
using namespace std;

void swap(int* a, int* b)
{
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

int main()
{
	long long input;
	cin >> input;
	int arr[11], i=0;

	while (input > 0)
	{
		arr[i] = input % 10;
		input /= 10;
		i++;
	}

	for (int j = 0; j < i - 1; j++)
	{
		for (int k = 0; k < i - 1 - j; k++) if (arr[k] < arr[k + 1]) swap(&arr[k], &arr[k + 1]);
	}

	for (int j = 0; j < i; j++) cout << arr[j];
	return 0;
}

코드설명

while문을 돌면서 입력된 숫자의 자릿수를 배열에 저장한다. 

for문을 돌면서 버블정렬을 이용해 정렬했다. 

 

느낀 점

개인적으로 버블정렬을 좋아해서 버블정렬로 풀었다. 

https://0yeonjae2.tistory.com/entry/IT%EA%B0%9C%EB%A1%A0-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98?category=535579 

 

[IT개론] 알고리즘

출처 : 소프트웨어 세상을 여는 컴퓨터과학 1. 알고리즘의 개요 1) 알고리즘의 개념 (1) 알고리즘(algorithm) - 어떤 문제를 해결하기 위해 구성된 일련의 절차 (2) 알고리즘의 조건 - 0개 이상의 입력,

0yeonjae2.tistory.com

위 링크에 선택정렬, 삽입정렬, 버블정렬이 어떻게 이루어지는지와 파이썬으로 구현한 정렬을 정리해두었다. 

 

'PS (C, C++)' 카테고리의 다른 글

[백준/C & C++] 1712 손익분기점  (0) 2022.08.26
[백준/C & C++] 1773 폭죽쇼  (0) 2022.08.26
[백준/C & C++] 1453 피시방 알바  (0) 2022.08.26
[백준/C & C++] 1225 이상한 곱셈  (0) 2022.08.24
[백준/C] 1718 암호  (0) 2022.08.24