한 줄 요약 : M번 반복하는 For문의 증감식을 'i++ & j--'로 넣어준다.
풀이 :
1. 바구니의 개수 N과 뒤집는 횟수 M의 값을 입력받는다.
int N, M; cin >> N >> M;
2. 바구니의 번호를 1부터 N까지 순서대로 입력해준다.
int Basket[100]; for (int a = 1; a <= N; a++) { Basket[a] = a; }
3. M번 바구니를 뒤집을 for문을 작성한다.
4번 5번은 이 for문 안에 들어갈 내용이다.
for (int a = 1; a <= M; a++) {}
4. 뒤집을 바구니의 범위인 i,j를 입력받는다.
int i, j; cin >> i >> j;
5. i~j 범위 내에서 바구니를 뒤집는 for문을 작성한다.
이 때 for문은 한 번의 반복마다 i++ & j--를 증감식으로 사용한다.
그러면 범위 내에서 대칭이 되는 배열 요소끼리 바꿔줄 수 있다.for (i; i < j; i++ & j--) { int change = Basket[i]; // Basket[i] = Basket[j]; Basket[j] = change; }
6. 뒤집힌 바구니들을 순서대로 출력한다.
for (int a = 1 ; a <= N; a++) { cout << Basket[a] << " "; }
<C++ code>
#include <iostream>
using namespace std;
int main()
{
int N, M;
cin >> N >> M;
int Basket[100];
for (int a = 1; a <= N; a++)
{
Basket[a] = a;
}
for (int a = 1; a <= M; a++)
{
int i, j;
cin >> i >> j;
for (i; i < j; i++ & j--)
{
int change = Basket[i];
Basket[i] = Basket[j];
Basket[j] = change;
}
}
for (int a = 1 ; a <= N; a++)
{
cout << Basket[a] << " ";
}
}