‡ CODING TEST STUDY ‡/º 백준

[백준 2947번 C++] 나무 조각

Trudy | 송연 2023. 9. 27. 18:03

2947번: 나무 조각 (acmicpc.net)

 

2947번: 나무 조각

첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다.

www.acmicpc.net


처음에는 for문 안의 while문을 안넣어줬더니 

두번째 입출력 예시가 안먹더라

while문으로 가장 첫번째 원소가 1, 두번째가 2, ... 가 되도록 이중 for문을 반복해줬더니 해결됨!

시간복잡도는 거의 4중 for문이어서 당연히 시간초과가 뜰 줄 알았는 데 아니었다

 

여튼 내 최종 코드는

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    int n;
    vector<int> v;
    for(int i=0; i<5; i++){
        cin >> n;
        v.push_back(n);
    }
        
    
    for(int j=0; j<4; j++){
        while(v[j]!= j+1) {
            for(int i=j; i<4; i++){
                if(v[i] > v[i+1]) {
                    n = v[i];
                    v[i] = v[i+1];
                    v[i+1] = n;
                
                    for(int p=0; p<5; p++){
                        cout << v[p] << " ";
                    }
                    cout << "\n";
                }
            }
        }
    }
    
    return 0;
}