문제: 10804번: 카드 역배치
basic-algo-lecture/workbook/0x02.md at master · encrypted-def/basic-algo-lecture
#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <iomanip> // setprecision을 사용하기 위한 헤더
#include <climits>
using namespace std;
int main() {
// 0번 인덱스는 무시
vector<int> cards(21);
for (int i = 0; i < 21; i++)
cards[i] = i;
for (int i = 0; i < 10; i++) {
int a, b;
cin >> a >> b;
int cnt = 0;
for (int j = a; j <= (a + b) / 2; j++) {
int tmp = cards[j];
cards[j] = cards[b - cnt];
cards[b - cnt] = tmp;
cnt++;
}
}
for (int i = 1; i < 21; i++)
cout << cards[i] << " ";
cout << "\n";
return 0;
}
문제에 그림이 주어져서 쉽게 풀 수 있었다. 음.. 딱히 설명할 말이 없다. 그냥 코드 그대로..
참고자료:
[바킹독의 실전 알고리즘] 0x02강 - 기초 코드 작성 요령 II - YouTube