

n 길이의 배열을 각 인덱스로 초기화한 다음 m번동안 i번째부터~j번째까지를 뒤집어주면 된다.
이때 reverse 함수를 활용하여 풀 수 있다.
reverse함수는 시작과 끝을 정해주면 그 구간을 뒤집어 준다.
정답코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<int> v(n);
for (int i = 0;i < n;i++)
{
v[i] = i + 1;
}
for (int x = 0;x < m;x++)
{
int i, j;
cin >> i >> j;
reverse(v.begin() + i - 1, v.begin() + j);
}
for (int it : v)
{
cout << it << " ";
}
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][C++]2675번. 문자열 반복 (0) | 2025.03.06 |
---|---|
[백준][C++]1546번. 평균 (0) | 2025.03.06 |
[백준][C++]2562번. 최댓값 (0) | 2025.03.06 |
[백준][C++]10818번. 최소, 최대 (0) | 2025.03.06 |
[백준][C++][LIS,DP]11054번. 가장 긴 바이토닉 부분 수열 (0) | 2025.02.14 |