본문 바로가기
알고리즘/BOJ

[BOJ] 2750. 수 정렬하기 (Bubble Sort)

by hyerann 2019. 4. 27.

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

 

2750번: 수 정렬하기

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

www.acmicpc.net

#include <iostream>
#include <ios>
using namespace std;

int N, numbers[1000];
void bubbleSort(int cnt);
void print();

int main() {
	cin.tie(0); ios::sync_with_stdio(0);
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> numbers[i];
	}
	bubbleSort(0);
	return 0;
}

void bubbleSort(int cnt) {
	if (cnt == N) {	// 정렬 끝
		print();
		return;
	}
	for (int i = 1; i < N - cnt; i++) {
		if (numbers[i - 1] > numbers[i]) {
			int temp = numbers[i];
			numbers[i] = numbers[i - 1];
			numbers[i - 1] = temp;
		}
	}
	bubbleSort(cnt + 1);
}

void print() {
	for (int i = 0; i < N; i++) {
		cout << numbers[i] << "\n";
	}
}

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 3052. 나머지 (vector 중복 제거)  (0) 2019.07.03
[BOJ] 10989. 수 정렬하기 3 (Counting Sort)  (0) 2019.04.28
[BOJ] 1934. 최소공배수  (0) 2019.04.23
[BOJ] 15666. N과 M (12)  (0) 2019.04.21
[BOJ] 15665. N과 M (11)  (0) 2019.04.21

댓글