문제 해결/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인 배열의 값들을 출력하였다.
반응형