pedants의 존경하는 통과 시간은 티셔츠, 포스터 등의 "Rubik 's Cubes"의 사진이 실제로는 해결할 수 없다는 것을 지적하는 것입니다.
가장 먼저 확인해야 할 것은 큐브가 올바른 조각으로 구성되어 있다는 것입니다. 큐브를 풀 수 있으려면 큐브에 각각 9 개의 사각형이있는 6 개의 색상이 필요합니다. 큐브는 또한 각 모서리 및 모서리 단위 (큐브를 구성하는 작은 큐브)가 고유해야합니다. 그것들은 독특해야 할뿐만 아니라 두 개의 중앙 부분이 서로 마주 보면 가장자리 또는 모서리 부분이 두 색상을 모두 포함 할 수 없습니다.
모든 올바른 조각으로 구성된 큐브가 있으면 여전히 풀릴 수 있는지 확인해야합니다. 여기에는 몇 가지 규칙이 있으므로 전문가에게 문의하여 설명하겠습니다. 아래 스포일러는이 작업을 수행하는 방법을 설명합니다. 혼자서 문제를 해결하는 데 관심이 있다면이 문제를 이해하거나 참여하기 위해 사이트를 방문 할 필요가 없습니다.
당신의 임무는 패턴을 입력으로 취하여 실제로 해결할 수있는 Rubik의 큐브인지 확인하는 것입니다. 큐브가 각면에 하나의 색상 만 있고 서로 다른면이 다른 색상을 갖도록 큐브에서 유효한 이동을 수행 할 수있는 방법이 있어야합니다. 대부분의 Rubik 큐브는 표준 색상으로 표시됩니다 (흰색은 노란색과 반대입니다). 해결 상태가이 특정 색상을 따르는 것으로 가정하지 않을 수 있습니다.
유효한 이동은 큐브의 단일면을 시계 방향 또는 시계 반대 방향으로 회전하는 것입니다. 큐브의면이 회전하면면과 접하는 사각형도 회전하며 이전에 닿은면에 연결된 상태로 유지됩니다.
IO
합리적인 방법으로 큐브를 가져갈 수 있습니다. 언어에 내장 된 "큐브-페이스"유형이있는 경우 입력에 적합합니다. 그렇지 않으면 넷의 2D 배열, 큐브, 각 얼굴에 대해 1 3 x 3 목록을 사용할 수 있습니다. 합리적입니다. 특정 형식이 수용 가능한 의견인지 또는 채팅에서 핑인지 알고 싶다면 그 유효성을 진술하기 위해 도전에 추가 할 것입니다.
입력 형식은 최대 9 개의 가능한 색상 만 지원하면됩니다.
출력의 경우 이는 결정 문제점이므로 "예, 이것은 유효한 Rubik 큐브입니다"에 대해 하나의 상수 값을, "아니요, 이것은 유효한 Rubiks 큐브가 아닙니다"에 대해 다른 하나의 상수 값을 출력해야합니다.
이것은 코드 골프 이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.
테스트 사례
테스트 사례는 다음과 같습니다. 각 정사각형을 단일 문자로 사용하여 정육면체의 그물로 형식화됩니다. 다른 글자는 다른 색을 나타냅니다. 요청시 더 이상 테스트 케이스를 추가 할 수 있습니다.
풀 수 있는
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
해결할 수없는
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWYWBBBOOO
YWY
YYY
YYY
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YWY
YYY
YYY
RRR
RRR
GGG
GGYWYWRBBOBO
GGYWWWROBOOO
GGYWWWRBBOOO
BBB
YWY
YYY
RRW
RRW
GGG
GGYWWYEOBROO
GGYWWYEBBROO
GGOWWYWBBROO
BBB
YYW
YYO