반응형
출처: https://www.acmicpc.net/problem/2947
5개 숫자를 정렬하는데 교환이 발생할 때마다
현재 배열 상태를 출력해야 한다.
버블 정렬(Bubble Sort)을 구현하는 것에서
출력하는 시점을 잘 고려하면 된다.
구현
① 5개 숫자 입력 받기
② 위치 교환 발생 여부 처리
③ 배열 위치 교환 swap()
④ 배열 상태 출력
#include <stdio.h>
const int SIZE = 5;
int arr[SIZE];
bool flag = true;
inline void swap(int &A, int &B) {
int temp = A; A = B; B = temp;
}
void printArr() {
for (int i = 0; i < SIZE; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
// freopen("input.txt", "r", stdin);
// 5개 숫자 입력 받기
for (int i = 0; i < 5; ++i)
{
scanf("%d", arr + i);
}
// 정렬이 완성될 때까지 수행
while (flag)
{
flag = false;
for (int i = 0; i < SIZE - 1; ++i) {
// 한번이라도 교환 발생한 경우
if (arr[i] > arr[i + 1]) {
flag = true;
swap(arr[i], arr[i + 1]);
// 교환될 때마다 상태 출력
printArr();
}
}
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 11050 이항 계수 1 (0) | 2021.02.23 |
---|---|
[BOJ] 백준 1932 정수 삼각형 (0) | 2021.02.23 |
[BOJ] 백준 2583 영역 구하기 (0) | 2021.02.23 |
[BOJ] 백준 10819 차이를 최대로 (0) | 2021.02.23 |
[BOJ] 백준 4963 섬의 개수 (0) | 2021.02.23 |
댓글