백준 단계별로 풀어보기 [정렬] 수 정렬하기
https://www.acmicpc.net/problem/2750
[풀이]
선택정렬을 사용하여 풀이하였다.
선택정렬은 첫번째 값을 그 다음 값부터 마지막 값까지 차례로 비교하여 가장 작은 값이 맨 앞에 오도록 swap해주는 방식을 반복하며 정렬을 수행한다.
[코드]
#include <iostream>
#define SWAP(x, y, z) ((z)=(x), (x=y), (y=z))
int main() {
int num, least, temp=0;
std::cin >> num;
int* arr = new int[num];
for (int i = 0; i < num; i++)
std::cin >> arr[i];
for(int i = 0; i < num-1; i++) {
least = i;
for (int j = i + 1; j < num; j++) {
if (arr[j] < arr[least]) least = j;
}
SWAP(arr[i], arr[least], temp);
}
for (int i = 0; i < num; i++)
std::cout << arr[i] << std::endl;
}
'알고리즘 공부 및 문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[c++] 백준 10814 나이순 정렬 (0) | 2021.07.15 |
---|---|
[c++] 백준 11650 좌표 정렬하기 (0) | 2021.07.15 |
[c++] 백준 2798 블랙잭 (0) | 2021.07.13 |
[c++] 백준 2232 분해합 (0) | 2021.07.12 |
[c++] 백준 7568 덩치 (0) | 2021.07.12 |