알고리즘/BOJ

백준 3190번 뱀

꾸준함. 2019. 5. 1. 18:30

문제 링크입니다: https://www.acmicpc.net/problem/3190

 

3190번: 뱀

문제  'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따

www.acmicpc.net

재밌는 시뮬레이션 문제였습니다.

뱀의 머리와 꼬리의 좌표를 모두 파악해야하기 때문에 양방향에서 삽입, 삭제가 가능한 덱을 이용했습니다.

뱀의 몸이 위치하고 있는 좌표를 표시하기 위해 visited 배열을 사용하였고, 사과의 위치를 파악하기 위해 apple 배열을 사용했습니다.

방향 전환은 언제나처럼 moveDir 배열을 생성하여 인덱스를 적절히 모듈러 연산을 하여 처리했습니다.

덱을 이용하는 시뮬레이션 문제라 접근 방법이 생소할 수도 있지만 유형만 익힌다면 금방 풀 수 있는 문제인 것 같습니다.

 

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 3568번 iSharp  (0) 2019.05.02
백준 2290번 LCD Test  (0) 2019.05.02
백준 14499번 주사위 굴리기  (0) 2019.04.30
백준 5373번 큐빙  (0) 2019.04.29
백준 14503번 로봇 청소기  (2) 2019.04.28