본문 바로가기

알고리즘/🥉 브론즈

백준 1547 공 자바 풀이

728x90

난이도 : 브론즈3

풀이일 : 2401077

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

 

1547번: 공

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

www.acmicpc.net


링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐


풀이코드

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

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N = Integer.parseInt(br.readLine());
		int ball = 1;
		
		for (int i = 0; i < N; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			
			int a = Integer.parseInt(st.nextToken());
			int b = Integer.parseInt(st.nextToken());
			
			if (a == ball) {
				ball = b;
			}
			else if (b == ball) {
				ball = a;
			}
		}
		
		System.out.println(ball);
	}
}
  • 컵은 무조건 세 개이며, 공은 1번 컵 아래에 넣고 시작하므로 ball = 1 으로 두고 시작
  • 현재 공이 들어있는 컵을 바꿀때마다, 공 숫자를 컵 번호로 재 할당

느낀점

  • 다른 문제를 풀다가 오늘 안에 풀지 못할 것 같아서 급하게 풀었다.
  • 지금보니까 공이 사라져서 컵 밑에 없는 경우는 -1을 출력하라는데, 저런 처리는 안해줬는데 맞았네...