백준 10811번: 바구니 뒤집기 / C++ 문제풀이

Been·2023년 11월 13일
0

백준

목록 보기
14/23
post-thumbnail

한 줄 요약 : 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] << " ";
	}
}
profile
콧콧코코콧코콧ㅅ

0개의 댓글