전체 코드
#include <iostream>
int main()
{
int arr[101];
int N, M, i, j, tmp, start, end;
std::cin >> N >> M;
for (int i = 1; i <= N; i++)
{
arr[i] = i;
}
for (int count1 = 0; count1 < M; count1++)
{
std::cin >> i >> j;
start = i;
end = j;
for (int count2 = 0; count2 < (j-i+1)/2; count2++)
{
tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
start++;
end--;
}
}
for (int i = 1; i <= N; i++)
{
std::cout << arr[i] << " ";
}
}
풀이
- 인덱스101선언 : 인덱스를 100으로 설정한다면 0부터 99까지만 이용 가능하므로 101로 선언함-> 1부터 100까지의 인덱스를 사용할 예정
int arr[101];
- 1부터 N번까지 본인의 인덱스값을 값으로 입력함
for (int i = 1; i <= N; i++)
{
arr[i] = i;
}
- 첫번째 반복문 : M번 반복하는 반복문
- i와 j를 입력받은뒤 각각 처음과 마지막으로 지정
- 두번째 반복문 : 입력받은 바구니의 개수에 2를 나눈 값만큼 반복함
- 두번째 반복문에 대한 것은 밑의 사진 참조
for (int count1 = 0; count1 < M; count1++)
{
std::cin >> i >> j;
start = i;
end = j;
for (int count2 = 0; count2 < (j-i+1)/2; count2++)
{
tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
start++;
end--;
}
}
반복문 첫번째 과정
반복문 두번째 과정