백준문제풀이 4단계 1차원 배열6 10813번 공 바꾸기 (C#)

2024. 5. 11. 20:00백준 문제풀이/4단계 1차원 배열

 

공 넣기문제의 다음 문제

 

이번엔 공 바꾸기다

 

N번까지의 바구니가 있고 각 바구니에는 바구니 번호와같은 공이있다.

M번 만큼 바꾸고 각 횟수마다 주어진 두 정수에 맞는 바구니를 바꾼다.

예를 들어 3 ,4가 입력되면 3번 바구니와 4번 바구니의 공이 바뀌는것.

 

using System;
class BackJoon
{
    static void Main(string[] args)
    {
        string[] input = Console.ReadLine().Split();
        int N = int.Parse(input[0]);
        int M = int.Parse(input[1]);
        int[] nums = new int[N];
        int temp = 0;
        for (int i = 0; i < N; i++)
            nums[i] = i+1;
        for (int i = 0; i < M; i++)
        {
            string[] input2 = Console.ReadLine().Split();
            int Num = int.Parse(input2[0]) - 1;
            int Num2 = int.Parse(input2[1]) - 1;
            temp = nums[Num];
            nums[Num] = nums[Num2];
            nums[Num2] = temp;
        }
        Console.WriteLine(string.Join(" ", nums));
    }
}

 

먼저 배열 nums에 원소들을 채워준다.

간단하게 i+1부터 N까지 숫자를 넣어주자.

 

그다음 번호를 바꿔주는데

0번째부터 시작이니 입력받은 정수에서 각각 -1을 해주자.

 

위에 선언한 먼저 temp에 nums[Num]의 값을 담아주고

nums[Num]에 nums[Num2]값을 넣어준다음

nums[Num2]에는 temp의 값을 넣어주자.

 

번호를 모두 바꾸고 string.Join으로 공백과 nums를 연결시켜 출력하면 끝.