백준 - 3190 뱀 (큐)
AMAD
참 오래 걸렸던 문제다.. 그렇게 어려운 문제는 아닌것같은데 아직 자료구조와 코드 구현에서 미숙하다는 것을 느꼈다. 일단 이 문제가 큐 자료구조를 이용해야 한다는 것을 알아야한다. 문제의 뱀 이라는 게임 내용을 보면 1초에 한번씩 뱀은 움직인다. 뱀은 움직일때 머리를 움직이고자 하는 칸으로 늘려서 이동한다. 그리고 다시 원래 있던 칸의 꼬리를 줄인다. 사과를 만나면 몸통 길이가 1칸 늘어난다. 어딘가에 넣고 다시 빼야 한다. 넣고, 빼는 형태로 문제를 풀어야 할때는 스택, 큐를 떠올려야 한다. 그럼 이 문제는 왜 큐를 사용해야 하는지 알아보자. 뱀의 이동 방식이 이렇기 때문에 큐를 이용해야 한다. 물론 리스트로 구현해도 문제를 풀수는 있다. pop(0)으로 꺼내면 되지만 이렇게 되면 시간복잡도가 O(n)..