PS
백준 3190. 뱀
tose33
2022. 3. 12. 15:48
https://www.acmicpc.net/problem/3190
3190번: 뱀
'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임
www.acmicpc.net
현재 뱀이 차지하고 있는 칸들을 deque 자료구조에 차례차례 넣어줬다. 즉 deque의 front는 뱀의 head의 위치가 된다.
또 뱀이 자신의 몸에 부딪히는지 판단해줘야 하기 때문에 주어진 보드에 뱀이 차지하고 있는 위치는 2로 기록했다.
뱀이 움직였을때 이동한 위치에 사과가 없다면 head를 제외한 몸통 부분은 내 앞쪽 몸통의 위치로 이동시키고, head는 다음 위치로 이동시키면된다.
보드는 새로운 head의 위치를 2로 기록하고, 마지막 꼬리가 있던 부분은 이미 이동 했으므로 0으로 기록해준다.
사과가 있다면 보드에 다음위치를 뱀으로 기록하고, deque의 front에 다음 위치를 삽입한다. (head의 새로운 위치)
다음 위치가 보드를 벗어나거나 2라면 (뱀의 몸통과 부딪힘) 종료하면 된다.