No Rules Rules

바구니 순서 바꾸기 (feat. 백준, 10812번) 본문

생활/코테

바구니 순서 바꾸기 (feat. 백준, 10812번)

개발하는 완두콩 2023. 2. 23. 08:01
728x90
반응형

바구니 순서 바꾸기
https://www.acmicpc.net/problem/10812

 

10812번: 바구니 순서 바꾸기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    ios::sync_with_stdio(false), cin.tie(NULL);
    register int arr[101], N, M;
    cin >> N >> M;
    for(register int n = 1; n <= N; ++n)
        arr[n] = n;
    for(register int m = 0, b, e, c; m < M; ++m){
        cin >> b >> e >> c;
        rotate(&arr[b], &arr[b] + (c - b), &arr[e + 1]);
    }
    for(register int n = 1; n <= N; ++n)
        cout << arr[n] << " ";
	return 0;
}
// *&)*@*

 

반응형

c++의 algorithm 에서 제공되는 rotate 함수를 사용하여 begin - end 범위에 mid를 기준으로 회전시켰습니다.

rotate 함수는 한번 연산될때마다 내부적으로는 swap이 계속 발생하므로 효율적인 방법은 절대 아닙니다.

728x90
반응형
Comments