백준 5373 큐빙

목표: 백준 온라인 저지 5373 큐빙 문제 풀기

환경: mac OS Mojave 10.14, CLion

로직

큐빙 문제는 시뮬레이션 유형의 문제입니다. 시뮬레이션 문제는 주어진 문제의 조건을 그대로 구현하는 문제에요.

좀더 자세히 말하자면, 큐브를 돌릴때 큐브를 바라본 좌측상단을 기준으로 아래와 같이 인덱스 넘버링을 하였습니다.

0 1 2
3 4 5
6 7 8

그리고 돌리는 면도 WAY1 라는 enum을 통해 표현하고, 노트에 큐브의 전개면을 그린 후에

이동순서를 일일히 그려보고 그대로 배열요소 값을 이동시켰습니다.

알고리즘을 몰라도 풀 수 있는 문제인데, 구현하는데 오래걸렸습니다.

큐브를 돌리면, 돌리는 면을 기준으로 왼쪽, 오른쪽, 뒤쪽, 앞쪽 면도 돌아가지만, 돌리는 면도 바뀐다는 것입니다.

이전에 틀린 코드와 PASS한 코드의 차이점은 돌리는 면은 그대로 두고 돌리는 면에 붙어있는 큐브들만 위치를 변경한 점입니다.

마지막으로 나중에 더 좋은 방법을 알게되면 포스팅할 계획이 있습니다. 이렇게 푸는게 아닐 겁니다.

SourceCode