문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 1
5
5
2
3
4
1
예제 출력 1
1
2
3
4
5
해결 아이디어
선택 정렬을 구현하고, 문제를 풀도록 하였다.
#include <iostream>
using namespace std;
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int num[1001];
int N;
cin >> N;
for(int i = 0; i < N; ++i)
{
cin >> num[i];
}
for(int i = 0; i < N - 1; ++i)
{
int least = i;
for(int j = i; j < N; ++j)
{
if(num[least] > num[j])
{
least = j;
}
}
swap(num[i], num[least]);
}
for(int i = 0; i < N; ++i)
{
cout << num[i] << ' ';
}
return 0;
}
'algorithms (C++)' 카테고리의 다른 글
[C++] 백준 25305번 / 커트라인 (0) | 2022.11.08 |
---|---|
[C++] 백준 2587번 / 대표값2 (0) | 2022.11.08 |
[C++] 백준 2563번 / 색종이 (0) | 2022.11.07 |
[C++] 백준 2566번 / 최댓값 (0) | 2022.11.07 |
[C++] 백준 2738번 / 행렬 덧셈 (0) | 2022.11.07 |