본문 바로가기
Programming/Algorithm(ACM Problems)

[백준] 1547번 : 공 / [자바] JAVA / 학습기록

by jongmln_ 2022. 1. 16.

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

 

1547번: 공

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

www.acmicpc.net


[백준] 1547번 : 공

이 문제는 말그대로 야바위게임이다.


[전체 코드]

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int M = sc.nextInt(); //섞을 횟수 M 입력
		int N = 1; //공이 들어있는 위치 첫번째에 공을 넣기 때문에 1값을 넣어준다.
		for(int i=0;i<M;i++) { // M만큼 반복
			int X = sc.nextInt(); 
			int Y = sc.nextInt();
			if(X == N || Y == N) { // 만약 3과 1을 섞는다면 공의 현재위치가 3이나 1이면
				if(X == N) { //3이 같아서 조건문을 통과했다면
					N = Y; //현재위치는 1이된다.
				}
				else N = X; //그렇지않다면 현재위치는 3이된다.
			}
			
		}
		System.out.println(N);
	}
	
}

[제출 결과]

 


이번문제는 크게 어려움이 없었다.

중간에 현재위치를 바꾸는 조건문을 

N = (X == N) ? Y : X;

 

와 같이 간단하게 바꿔줄수도 있다.