백준 1427 c++

magicdrill·2024년 2월 27일

백준 문제풀이

목록 보기
45/673

백준 1427 c++

#include <iostream>
#include <algorithm>
#include <cstring>
#pragma warning(disable:4996)

using namespace std;

int input(int lower, int upper);
void int_to_int_array_string(int num, char* str, int* int_str, int *size);
void insertion_descending_sort(int* str, int size);
void print_array(int* array, int size);

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N;
	char str[11];
	int int_str[10];
	int size;

	N = input(1, 1000000000);
	int_to_int_array_string(N, str, int_str, &size);
	insertion_descending_sort(int_str, size);
	print_array(int_str, size);

	return 0;
}

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void int_to_int_array_string(int num, char* str, int* int_str, int *size)
{
	//sprintf_s(str, 30*sizeof(char), "%d", num);
	sprintf(str, "%d", num);
	*size = strlen(str);

	for (int i = 0; i < *size; i++)
	{
		int_str[i] =  (int)str[i]-48;
	}

	return;
}

void insertion_descending_sort(int* str, int size)
{
	int i, j;
	int key, temp;

	for (i = 1; i < size; i++)
	{
		key = str[i];
		for (j = i - 1; j >= 0; j--)
		{
			if (key < str[j])
			{
				;
			}
			else
			{
				temp = str[j];
				str[j] = key;
				str[j + 1] = temp;
			}
		}
	}

	return;
}

void print_array(int *array, int size)
{
	int i;
	for (i = 0; i < size; i++)
	{
		cout << array[i];
	}
	cout << '\n';

	return;
}

0개의 댓글