arr = list(map(int,input().split()))
check_border = [
[
1,2,17,19,
13,3,4,15,
5,6,7,8,
14,16,11,12,
9,10,18,20,
21,22,23,24
],
[
1,2,14,16,
13,15,9,10,
11,12,17,19,
3,4,18,20,
21,22,23,24,
5,6,7,8,
],
[1,3,6,8,
5,7,10,12,
9,11,21,23,
22,24,2,4,
17,18,19,20,
13,14,15,16],
[1,3,21,23,
5,7,2,4,
9,11,6,8,
22,24,10,12,
13,14,15,16,
17,18,19,20],
[1,2,3,4,
5,6,15,16,
9,10,11,12,
13,14,23,24,
17,18,7,8,
21,22,19,20],
[1,2,3,4,
5,6,19,20,
13,14,7,8,
9,10,11,12,
17,18,23,24,
21,22,15,16]
]
result = 0
for i in range(6):
check = check_border[i]
for j in range(6):
check_face = list(map(lambda x : x-1,check[(4*j):4*(j+1)]))
if not (arr[check_face[0]] == arr[check_face[1]] == arr[check_face[2]] == arr[check_face[3]]):
break
else:
result = 1
break
print(result)
이 문제에서 주의해야할 건 무조건 1번 움직이는 것이다.
그리고 2 X 2 X 2 의 큐브의 경우, 돌릴때 1번 돌릴때 딱 6가지의 경우의 수 밖에 없으므로,
그 6가지를 전부 구해놓고, 4개 간격으로 같은색인지 확인하는 방식으로 풀면 된다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 9944 NxM 보드 완주하기 (0) | 2021.05.17 |
---|---|
[BOJ/백준] 10423 전기가 부족해 (0) | 2021.05.15 |
[BOJ/백준] 15806 영우의 기숙사 청소 (0) | 2021.05.14 |
[BOJ/백준] 14657 준오는 최종인재야! (0) | 2021.05.14 |
[BOJ/백준] 20366 같이 눈사람 만들래? (0) | 2021.05.14 |