ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 2947번: 나무 조각
    정렬(Sort) 2018. 7. 16. 10:49
    반응형

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


    1. 문제

    동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 써있다.


    동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만드려고 한다.


    첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.

    두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.

    세 번째 조각의 수가 네 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.

    네 번째 조각의 수가 다섯 번째 수보다 크다면, 둘의 위치를 서로 바꾼다.

    만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1 단계로 다시 간다.

    처음 조각의 순서가 주어졌을 때, 위치를 바꿀 때 마다 조각의 순서를 출력하는 프로그램을 작성하시오.


    2. 알고리즘

    키워드 - 버블 정렬


    3. 코드


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <algorithm>
    #include <functional>
    #include <vector>
    #include <list>
    #include <queue>
    #include <deque>
    #include <map>
    #include <set>
    #include <stack>
    #include <cstring>
     
    using namespace std;
     
    #define MAX_SIZE 100
    #define INF 0x7fffffff
    #define CENDL "\n"
    #define ll long long
     
    void printArray(vector<int> arr) {
        for (auto a : arr) {
            cout << a << " ";
        }
        cout << CENDL;
    }
    int main() {
     
        cin.tie(0);
        std::ios::sync_with_stdio(false);
        
        int n = 5;
        vector<int> arr(n);
        for(int i=0; i<n; i++)
            cin >> arr[i];
     
        for(int i=0; i<4; i++) {
            for(int j=0; j<4-i; j++) {
                if (arr[j] > arr[j+1]) {
                    swap(arr[j+1], arr[j]);
                    printArray(arr);
                }
            }
        }
        return 0;
    }
     
    cs

    반응형

    '정렬(Sort)' 카테고리의 다른 글

    백준 1427번: 소트인사이트  (0) 2020.11.28
    백준 9946번: 단어 퍼즐  (0) 2018.07.23
    백준 1026번: 보물  (0) 2018.07.15
    백준 14921번: 용액 합성하기  (0) 2018.07.03
    백준 10989번: 수 정렬하기 3  (0) 2018.07.03

    댓글

Designed by Tistory.