C언어/백준

1574: 공

road23 2022. 8. 2. 01:15

브론즈 3

https://www.acmicpc.net/problem/1547

 

1547번: 공

첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것

www.acmicpc.net

 

-결과

 

-코드

#include <stdio.h>

int main(){
    int arr[3]={1,2,3};
    int n,a,a1,b,b1,temp;
    scanf("%d",&n);
    for(int i=0;i<n;i++){ 
        scanf("%d %d",&a,&b);
        if(a==b)   
            continue;
        else{
            for(int k=0;k<3;k++){ 
                if(arr[k] == a)
                    a1 = k;
                else if(arr[k] == b) 
                    b1 = k;
                else{}
            }
         
            temp = arr[a1];
            arr[a1] = arr[b1];
               arr[b1] = temp;   
        }
    }
    printf("%d",arr[0]);
    return 0;
}

 

-풀이

먼저 기존의 배열인 arr을 선언한다.

if-else문을 이용해서 자리를 바꾸는 컵의 위치 a, b를 입력받는데, 만약 입력받는 컵의 위치가 같다면 continue를 한다.

그리고 입력받은 컵의 위치 a가 있는 배열 arr을 a1이라 고 선언하고, 다른 컵의 위치 b가 있는 배열 arr을 b1이라고 선언한다.

그리고 변수 temp와 배열을 이용해서 두 컵의 자리를(위치) 바꾼다.