본문 바로가기

Beakjoon/else

[백준] 2605번 줄 세우기 (C++) - vector.insert()

문제

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

 

2605번: 줄 세우기

점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을

www.acmicpc.net

코드

#include <iostream>
#include <vector>

using namespace std;

vector<int> v;

int main(){
  int n;
  cin >> n;

  for(int i=1; i<=n; i++){
    int a;
    cin >> a;
    v.insert(v.begin()+a,i);
  }
  for(int i=n-1; i>=0; i--){
    cout << v[i] << ' ';
  }
  return 0;
}

정리

v.insert(v.begin()+5, 10) : 5번째 위치에 10을 넣는다. 뒤에 있는 원소들을 한칸씩 뒤로 밀린다.

insert의 첫번째 파라미터로 vector의 iterator를 넣어주어야 한다. 그래서 "v.begin()+숫자" 이런 형식으로 사용해야 한다. 

참조

https://blockdmask.tistory.com/70

https://hsdevelopment.tistory.com/164