Problem : 주사위 윷놀이
유형 : 구현
문제 해석 (5)
- 말 4개가 있다
- 주사위 10개의 결과를 이미 알고 있다
- 말을 조건에 맞춰서 움직이고, 최대 점수를 구하라.
문제 재해석
- 주어진 그대로 구현하면 되는 구현 문제이다
해결 전략 (15)
- 어느 위치에서 갈 수 있는 위치는 정해져 있다.
- 예를 들어 점수 10이 적혀있는 위치에서 갈 수 있는 곳은 13, 16 , 19, 25… 로 고정 되어있다.
- 데이터 테이블을 미리 만들어 두고 해결한다.
- 말들이 주사위 점수에 따라 이동 할 수 있는 모든 조합을 구해본다.
구현, 설계 (40)
- 각 좌표에서 갈 수 있는 곳 이상을 가려고 하는 경우 도착으로 가는 것으로 처리했다.
- DFS로 모든 말의 조합을 만들었다.
- 10번을 움직일 수 없다면 있을 수 없는 경우이므로, 0을 리턴 했다.
디버깅 (60)
- 데이터 테이블 세팅 실수를 했다.
- 점수 초기 세팅 실수를 했다.
- 말이 겹치는 경우 게임을 종료시키지 않는 실수를 했다.
- 말을 움직인 경우, 말의 위치 정보를 갱신하지 않는 실수를 했다.
주의할 점
- 말이 겹치는 경우가 발생할 경우. 해당 조합으로 진행하던 게임은 종료해야 한다.
- 턴을 무효화 하는 것이 아니다. 10번을 전부 다 움직여야 하기 때문.
- 왜냐하면 그런 경우는 애초에 존재하지도 않기 때문.
- 목적지에 도달한 말을 움직이려는 경우도 동일하다.
코드
1 |
|
피드백
- 점수 초기 세팅을 잘못해서 틀렸다.
- 꼼꼼함이 필요할 것 같다.
- 설명에 중요한 내용이 드러나지 않게 있을 수 있다.
- 문제의 조건은 진짜 곰곰히 생각해보자.