알고리즘/백준
[백준/c++] 10812번: 바구니 순서 바꾸기
녕이
2022. 5. 11. 18:25
728x90
https://www.acmicpc.net/problem/10812
10812번: 바구니 순서 바꾸기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2
www.acmicpc.net
처음엔, while 반복문으로 tmp 배열을 복사해서 하나하나 옮겨줬는데 시간 초과 발생..!!
rotate 함수를 사용하면 된다.
begin에서 end를 mid 기준으로 회전하는 함수인데, 맨 앞에 있는 원소는 맨 뒤로 이동하고 +1을 할수록 원소가 좌측으로 이동한다.
#include <iostream>
#include <algorithm>
#define MAX 101
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, m, arr[MAX];
cin >> n >> m;
for(int i=1; i<=n; i++) arr[i] = i;
while(m--){
int begin, end, mid;
cin >> begin >> end >> mid;
rotate(arr+begin, arr+mid, arr+end+1);
}
for(int i=1; i<=n; i++) cout << arr[i] << ' ';
return 0;
}
728x90