Java/Java 알고리즘

백준 20361번 일우는야바위꾼 JAVA 구현해보기

kimc 2021. 11. 20. 22:54

```

백준 20361번 일 우는 야바위꾼 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1.  백준 20361번 풀이

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

 

20361번: 일우는 야바위꾼

첫째 줄에 N (3 ≤ N ≤ 200,000), X (1 ≤ X ≤ N), K (1 ≤ K ≤ 100,000)가 공백으로 구분되어 주어진다. 둘째 줄부터 K개의 줄에는 순서대로 바꾼 두 컵의 위치 Ai, Bi (1 ≤ Ai, Bi ≤ N, Ai ≠ Bi)가 공백

www.acmicpc.net

 

 

 

백준 20361번 일우는 야바위꾼은

난이도 브론즈 등급의 문제로서

 

컵의 개수 N,

공을 숨겨둔 컵의 첫 위치 X,

컵의 이동 횟수 K를 입력 받은 뒤에

 

K번만큼

A위치의 컵을 B위치의 컵과 교환할 때

 

최종적으로 공이 숨은 컵의 위치를 구하면 되는 문제입니다.

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


 

 

두 컵의 위치를 입력받고

입력받은 컵의 위치가 현재 공이 들어간 위치와 동일한 경우

바꿔주기만 하면 되는 문제입니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.stream.IntStream;

public class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int cupCnt = Integer.parseInt(st.nextToken());
        int cupIdx = Integer.parseInt(st.nextToken());
        int movCnt = Integer.parseInt(st.nextToken());

        for (int idx = 0; idx < movCnt; idx++) {
            String[] str = br.readLine().split(" ");
            int a = Integer.parseInt(str[0]);
            int b = Integer.parseInt(str[1]);
            final int prevCupIdx = cupIdx;

            if(a == prevCupIdx){
                cupIdx = b;
            } else if(b == prevCupIdx){
                cupIdx = a;
            }
        }
        System.out.print(cupIdx);
    }
}

 

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 

참조 및 인용

 


 

728x90