자바 백준 13698번
브론즈 3
https://www.acmicpc.net/problem/13698
문제 보기
분류: 구현, 시뮬레이션
문제 풀기
입력되는 문자를 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
*/
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 12778 - CTP공국으로 이민 가자 (0) | 2023.04.15 |
---|---|
[Java] 백준 풀기 2975 - Transactions (0) | 2023.04.14 |
[Java] 백준 풀기 20976 - 2 番目に大きい整数 (The Second Largest Integer) (0) | 2023.04.12 |
[Java] 백준 풀기 10480 - Oddities (0) | 2023.04.11 |
[Java] 백준 풀기 10698 - Ahmed Aly (0) | 2023.04.10 |