공부하기/백준

[Java] 백준 풀기 13698 - Hawk eyes

XEV 2023. 4. 13. 23:47

자바 백준 13698번

브론즈 3

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

 

13698번: Hawk eyes

첫째 줄에 재열이가 컵을 섞는 순서가 주어진다. 이 순서는 위 그림에 있는 A, B, C, D, E, F 중 하나이다. 재열이는 컵을 최대 200번 섞는다.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 시뮬레이션

 

 

 

 

 

문제 풀기

입력되는 문자를 char array 로 나누어 입력받는다.

컵의 번호인 index 를 맞추기 위해 빈칸이 4 개가 아닌 5 개짜리 빈 array 를 생성하고 index 1 에 숫자 1 을 넣고, index 4 에 숫자 9 를 넣는다.

for each 를 사용하여 입력 문자의 알파벳 하나 하나를 빼내고, 조건에 따른 자리바꿈을 시행한다. index 편의를 위해 5 개짜리 arrayBall 에서 index 0 은 사용하지 않는다.

모든 알파벳에 해당하는 자리바꿈이 끝나고 나면 작은공을 지칭하는 1 의 위치인 index 를 출력하고, 다음으로 큰공을 지칭하는 숫자 9 의 위치를 출력한다.

 

 

 

 

 

코드 보기

import java.util.*;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        char[] charSwap = sc.next().toCharArray();
        
        int[] arrayBall = new int[4 + 1];
        arrayBall[1] = 1;
        arrayBall[4] = 9;
        System.out.println(Arrays.toString(arrayBall));  // TEST PRINT
        
        for (char c : charSwap) {
            if ((c + "").equals("A")) {
                int temp = arrayBall[1];
                arrayBall[1] = arrayBall[2];
                arrayBall[2] = temp;
            }
            else if ((c + "").equals("B")) {
                int temp = arrayBall[1];
                arrayBall[1] = arrayBall[3];
                arrayBall[3] = temp;
            }
            else if ((c + "").equals("C")) {
                int temp = arrayBall[1];
                arrayBall[1] = arrayBall[4];
                arrayBall[4] = temp;
            }
            else if ((c + "").equals("D")) {
                int temp = arrayBall[2];
                arrayBall[2] = arrayBall[3];
                arrayBall[3] = temp;
            }
            else if ((c + "").equals("E")) {
                int temp = arrayBall[2];
                arrayBall[2] = arrayBall[4];
                arrayBall[4] = temp;
            }
            else if ((c + "").equals("F")) {
                int temp = arrayBall[3];
                arrayBall[3] = arrayBall[4];
                arrayBall[4] = temp;
            }
        }
        System.out.println(Arrays.toString(arrayBall));  // TEST PRINT
        
        for (int i = 0; i < 5; i++) {
            if (arrayBall[i] == 1) {
                System.out.println(i);
            }
        }
        for (int i = 0; i < 5; i++) {
            if (arrayBall[i] == 9) {
                System.out.print(i);
            }
        }

    }
}



/*
AFD

[0, 1, 0, 0, 9]
[0, 0, 9, 1, 0]

3
2
*/