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] << ' ';
}