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 |
댓글