문제 해결/BaekJoon

[백준] [C++] 2750번 수 정렬하기

WSLim_97 2023. 1. 11. 17:36
반응형

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

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net


코드

#include <iostream>
using namespace std;

void Sort(int arr[], int n);

const int SIZE = 1000;

int main()
{
	int n, input, arr[SIZE] = { };
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		cin >> input;
		arr[i] = input;
	}

	Sort(arr, n);

	for (int i = 0; i < n; i++)
		cout << arr[i] << endl;

	return 0;
}

void Sort(int arr[], int n)
{
	for (int i = 0; i < n; i++)
	{
		int min = arr[i];
		int minIndex = i;

		for (int j = i + 1; j < n; j++)
		{
			if (min > arr[j])
			{
				min = arr[j];
				minIndex = j;
			}
		}

		if (minIndex == i)
			continue;
		else
		{
			int temp = arr[i];
			arr[i] = arr[minIndex];
			arr[minIndex] = temp;
		}
	}
}

풀이

n개의 수가 주어졌을 때 이를 오름차순으로 정렬하여 출력하는 문제이다.

 

Sort 함수를 새로 작성해 배열에 저장되어 있는 값들을 정렬하였다.

 

Sort 함수는 0번 인덱스의 값과 나머지 값을 비교해 가장 작은 값과 값을 바꾸도록 하였다.

 

수를 오름차순으로 정렬한 뒤 크기가 n인 배열의 값들을 출력하였다.

반응형