알고리즘

<baekjoon> 뱀

koyuchang 2020. 10. 30. 00:48

풀이

뱀의 방향이 변할 수 있으므로 방향배열을 설정하고 BFS 혹은 DFS로 생각할 수도 있지만, 단순히 현재 바라보는 방향에서 왼쪽이냐 오른쪽이냐 만 생각하면 굳이 방향 배열을 만들 필요는 없다. dir변수를 둬서 0-우 1-하-2-좌 3-상으로 정한다. 'D'가 나오면 dir변수에 +1을 해주고 'L'가 나오면 -1을 해준다.

 

그리고 사과가 없는 위치에 도착하면 꼬리를 하나씩 잘라내면 되므로 이동시마다 현재위치를 계속 저장할 객체를 만들고 Queue에 저장한다. 그래서 사과가없으면 제일 처음 꼬리 좌표를 제거하고 그 부분을 이동가능한 0으로 설정한다.

 

코드