[백준/C++] 10813번: 공

문제로 이동

(백준/C++) #10813: 랠리

10813호:랠리

도현은 총 N개의 바구니를 가지고 있고, 각 바구니는 1부터 N까지 번호가 매겨져 있습니다.
각 바구니에는 1개의 공이 들어 있으며 첫 번째 공에는 바구니에 적힌 번호와 같은 번호가 있습니다.

www.acmicpc.net


설명

스왑 기능을 통해 쉽게 구현할 수 있었습니다!

배열은 0부터 시작하고 바스켓은 1부터 시작합니다.

다른 어레이를 만든 후 어레이 1에서 값을 할당하는 방법을 선택했습니다!


암호

#include <iostream>

using namespace std;

int main()
{
	cin.tie(NULL);
	ios::sync_with_stdio(false);

	int M, N;
	cin >> M >> N;

	int *arr = new int(M + 1); // 동적 할당

	for (int i = 1; i <= M; i++) // 배열에 모든 값 입력
	{
		arr(i) = i; 
	}

	for (int i = 0; i < N; i++)
	{
		int ii, jj;
		cin >> ii >> jj;

		swap(arr(ii), arr(jj)); // arr(ii)와 arr(jj)의 값을 서로 바꿈
	}

	for (int i = 1; i <= M; i++) // 배열 출력
	{
		cout << arr(i) << " ";
	}
	cout << "\n";
	delete arr; // 동적 할당 해제
	return 0;
}