백준 25305 c++

magicdrill·2024년 4월 17일

백준 문제풀이

목록 보기
321/675

백준 25305 c++

#include <iostream>

using namespace std;

int input(int lower, int upper);
void int_array_input(int* array, int size);
void insertion_sort(int* array, int size);
void insertion_descending_sort(int* array, int size);

int main(void)
{
	int N, k;
	int *grade;

	N = input(1, 1000);
	k = input(1, N);
	grade = new int[N];
	int_array_input(grade, N);
	//insertion_sort(grade, N);
	//===================================================
	insertion_descending_sort(grade, N);
	for (int i = 0; i < N; i++)
	{
		cout << grade[i] << " ";
	}
	cout << endl;
	//===================================================
	cout << grade[N - k] << endl;

	delete[] grade;

	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_array_input(int* array, int size)
{
	int i;

	for (i = 0; i < size; i++)
	{
		array[i] = input(0, 10000);
	}

	return;
}

void insertion_sort(int* array, int size)
{
	int i, j;
	int key, temp;
	
	for (i = 1; i < size; i++)
	{
		key = array[i];
		for (j = i - 1; j >= 0; j--)
		{
			if (key < array[j])
			{
				temp = array[j];
				array[j] = key;
				array[j + 1] = temp;
			}
			else
			{
				;
			}
		}
	}

	return;
}

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

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

0개의 댓글