문제 링크
- http://icpc.me/12100
사용 알고리즘
- 브루트 포스
풀이
빡구현 문제이므로 구현해야할 기능들을 먼저 정리해봅시다.
- 완전탐색 - 재귀호출
- 상태전이 - 상하좌우 이동
- 평가 - 현재 상태의 최댓값
상하좌우 이동을 먼저 봅시다. 하나만 잘 구현하면 나머지는 비슷하게 구현할 수 있으므로 하나를 잘 구현하는 것이 관건입니다. 저는 큐를 사용해서 아래와 같은 방식으로 구현했습니다.
1 |
|
완전탐색 부분은 재귀호출을 이용해 할 것입니다.
bit[5]
라는 배열을 만들어서 각 단계마다 어떤 연산을 했는지 기록해둔 다음, 기저조건(연산 5번 완료 이후)에서 bit 배열을 순회하면서 최종 보드판을 만들어 나갑니다.
현재 상태의 최댓값을 구하는 것은 for문을 이용해 간단하게 구현할 수 있습니다.
1 |
|
전체 코드
1 |
|