Layer7

-Layer7 백준 공 바꾸기

KSJ._.seven11 2023. 4. 9. 17:16

주의할 점: 입력으로 주어지는 방법은 i와 j라는 두 개의 정수로 이루어져 있다.. 이때, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는 것은 i번 바구니에 들어있던 공과 j번 바구니에 들어있던 공을 서로 바꾼다는 것이므로 예를 들어, 3번 바구니와 5번 바구니에 들어있는 공을 교환하려면, "3 5"라는 방법을 입력받아서, 3번 바구니와 5번 바구니에 들어있는 공을 서로 바꿔 야 한다는 점이다.

 

 따라서, 이 점에 주의하여 입력으로 주어지는 방법대로 공을 교환하는 코드를 작성해야한다.

 

그렇게 작성한 코드는 아래와 같다.

 

#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m); // n: 바구니의 개수, m: 공 위치 바꾸기의 횟수

    int balls[n+1];
    for(int k=1; k<=n; k++) {
        balls[k] = k; // 첫 바구니 번호 지정
    }

    for(int l=0; l<m; l++) {
        int a, b;
        scanf("%d %d", &a, &b); // a와 b를 입력 받아서 공의 위치를 바꿈

        int temp = balls[a];
        balls[a] = balls[b];
        balls[b] = temp; // a와 b 위치의 공 교환
    }

    for(int m=1; m<=n; m++) {
        printf("%d ", balls[m]); // 현재 바구니의 상태 출력
    }

    return 0;
}

 

공의 위치를 변경하는 걸 새로운 변수를 지정하여 할 수 있다는 것을 망각한채 시간을 허무하게 많이 보냈다...