
-Code
import java.io.*;
public class BOJ16337 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] dice = new String[3];
for (int i = 0; i < 3; i++) {
dice[i] = br.readLine();
}
System.out.println(checkDice(dice) == -1 ? "unknown" : checkDice(dice));
}
private static int checkDice(String[] dice) {
String[][] diceShapes = {
{":::", ":o:", ":::"}, // 1
{"::o", ":::", "o::"}, // 2 (A)
{"o::", ":::", "::o"}, // 2 (B - 반전)
{"::o", ":o:", "o::"}, // 3 (A)
{"o::", ":o:", "::o"}, // 3 (B - 반전)
{"o:o", ":::", "o:o"}, // 4
{"o:o", ":o:", "o:o"}, // 5
{"o:o", "o:o", "o:o"}, // 6 (가로)
{"ooo", ":::", "ooo"} // 6 (만약 세로가 있다면 추가)
};
int[] diceNum = {1, 2, 2, 3, 3, 4, 5, 6, 6};
for (int i = 0; i < 9; i++) {
boolean flag = true;
for (int j = 0; j < 3; j++) {
if (!dice[j].equals(diceShapes[i][j])) {
flag = false;
break;
}
}
if (flag) {
return diceNum[i];
}
}
return -1;
}
}
2, 3과 6인 경우 반전이나 90도 돌린 모양도 포함되어야 하는데 한 가지 경우만 포함되는 중인 줄 알고 틀렸고 이를 수정해 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 2615번 오목 (0) | 2026.02.11 |
|---|---|
| [백준/Java] 2668번 숫자고르기 (0) | 2026.02.11 |
| [프로그래머스/Java] 햄버거 만들기 (0) | 2026.02.10 |
| [백준/Java] 5052번 전화번호 목록 (0) | 2026.02.10 |
| [백준/Java] 12981번 공 포장하기 (0) | 2026.02.10 |