Programming/백준 (c++)

[백준] #2750 : 수 정렬하기 (버블정렬)

마이구미포포 2022. 9. 3. 17:14

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

문제

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>
#include <vector>

using namespace std;

vector<int> arr;

void bubbleSort(int n){
    for (int i=0; i<n-1; i++) { //전체 회전 수 :n-1번
        for (int j=0; j<n-1-i; j++){
            if(arr[j]>arr[j+1]){ //두 원소를 swap
                swap(arr[j],arr[j+1]);
            }
        }
    }
}

int main(){
    
    int n;
    
    //입력
    cin>>n;
    arr.assign(n,0);
    
    for (int i=0; i<n; i++){
        cin >> arr[i];
    }
    
    bubbleSort(n);
    
    for(int i=0; i<n; i++){
        cout<<arr[i]<<"\n";
    }
    
    return 0;
}

 


이번에는 버블 정렬을 이용하여 풀어보았다. 

클린코드를 위해 버블 정렬 함수를 따로 선언해주고 함수를 호출해주었다