BOJ
C++ [BOJ] 백준 10804번 카드 역배치
coco_ball
2022. 6. 21. 00:01
https://www.acmicpc.net/problem/10804
10804번: 카드 역배치
1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다.
www.acmicpc.net
SOLUTION
구간이 나올 때 마다 역순으로 벡터에 저장하여 벡터에 저장한 값들을 다시 arr 배열에 저장하면 순서가 바뀌게 된다.
코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
int arr[21];
for (int i = 0;i < 21;i++) {
arr[i] = i;
}
for (int i = 0;i < 10;i++) {
int x, y;
cin >> x >> y;
vector<int>tmp;
for (int i = y;i >= x;i--) {
tmp.push_back(arr[i]);
}
for (int i = x;i <= y;i++) {
arr[i] = tmp[i - x];
}
}
for (int i = 1;i < 21;i++) {
cout << arr[i] << ' ';
}
}