PS

BOJ - 10804. 카드 역배치 (C++)

kugnuoy 2024. 2. 28. 16:05

10804.

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

 

10804번: 카드 역배치

1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다. 

www.acmicpc.net

 

[풀이]

배열 혹은 문자열의 내부 요소를 뒤집는 STL지원 함수 reverse()를 사용하면 된다.

배열에서는 reverse(a, a+5) 와 같이 사용하면 되고 문자열에서는 reverse(a.begin(), a.begin + 5) 와 같이 사용하면 된다.

#include <bits/stdc++.h>
using namespace std;
int card[20];
int a,b;

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	for (int i=1; i<=20; i++) card[i-1] = i;

	for (int i=0; i<10; i++) {
		cin >> a >> b;
		reverse(card + a-1, card + b);
	}
	for (int i=0; i<20; i++) cout << (int)card[i] << ' ';
}