본문 바로가기
알고리즘/백준 문제

10431 - 줄 세우기

by HDobby 2023. 2. 23.

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

 

10431번: 줄세우기

초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1

www.acmicpc.net

생각해 보기

  • 3번째 서있던 친구가 맨 앞으로 가게되면 그 사이에 있던 친구들만 움직이면 된다.
  • 모든 친구들에 대하여 키가 큰지 비교할 필요 없이 맨 앞에서부터 큰 친구를 만날때까지 비교하면 된다.

코드

더보기
#include<iostream>
#include<vector>

using namespace std;

int N;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>N;
    for(int i=1;i<=N;++i){
        vector<int> children(20);

        int tmp, cnt=0;
        cin>>tmp;
        for(int j=0;j<20;++j)
            cin>>children[j];

        for(int j=0;j<20;++j){
            for(int k=0;k<j;++k){
                if(children[k]>children[j]){
                    cnt+=j-k;
                    tmp = children[j];
                    children.insert(children.begin()+k,tmp);
                    children.erase(children.begin()+j+1);
                    break;
                }
            }
        }

        cout<<i<<" "<<cnt<<'\n';
    }

    return 0;
}

728x90

'알고리즘 > 백준 문제' 카테고리의 다른 글

8979 - 올림픽  (0) 2023.02.24
9655 - 돌 게임  (0) 2023.02.23
5073 - 삼각형과 세 변  (0) 2023.02.22
23971 - ZOAC 4  (0) 2023.02.22
[ALGORITHM] 백준 20056 - 마법사 상어와 파이어볼  (0) 2022.12.13

댓글