이번 글은 '이것이 취업을 위한 코딩테스트다' 내의 문제를 풀고 정답 코드를 정리한 것입니다.
이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 - 교보문고
이것이 취업을 위한 코딩 테스트다 with 파이썬 | IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인! 취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나
product.kyobobook.co.kr
이번 문제는 아래 링크에서 풀어볼 수 있습니다.
3190번: 뱀
'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임
www.acmicpc.net
문제
정답 코드
파이썬 Ver.
자바스크립트 Ver.
답안 1
답안 2
답안 3
문제 풀이
이번 문제는 전형적인 시뮬레이션 문제이다. 매 초가 흐를 때마다 뱀의 머리 방향이 어디로 바뀌는지, 그리고 방향이 바뀌었을 때 좌표 처리를 어떻게 하는지 좌표값만 잘 처리한다면 수월하게 풀 수 있지 싶다.
나의 경우 1번 케이스는 통과하는데 나머지 케이스를 통과하지 못했다. 그리고 사과 위치를 (0, 0) 기준으로 입력했는데 문제 풀이를 보니 (1, 1) 기준으로 입력해야 됐다. 그리고 방향 전환 코드를 짜는 데 애를 먹었는데 아래와 같이 생각하면 간단하다.
# 동쪽 회전: 상(0) -> 우(1) -> 하(2) -> 좌(3) -> 상(0) : +1 방향
# 왼쪽 회전: 상(0) -> 좌(3) -> 하(2) -> 우(1) -> 상(0) : -1 방향
또한 지나간 자리를 처리하기 위해 큐를 사용해야 한다는 것도 알게 되었다. 왜냐하면 사과가 없는 경우 이동하고 나서 꼬리를 잘라야 하는데 이때 큐는 선입선출이므로 pop(0)을 사용한다면 가장 먼저 들어간 좌표값이 제거된다. 제거된 해당 좌표값을 0으로 처리하면 꼬리 자르기를 구현할 수 있다.
함께 보기
[백준] 3190 뱀 - javascript
https://www.acmicpc.net/problem/3190✔️ 알고리즘 : 구현✔️ 사과가 있는 칸은 2로 현재 뱀이 위치해있는 칸은 1로 비어있는 칸은 0으로 설정✔️ 뱀의 위치를 추적하기 위해 path 배열과 뱀의 head, tail을
velog.io
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Baekjoon] 10828 스택(파이썬 python) (0) | 2022.12.21 |
---|---|
[프로그래머스] level 3 기둥과 보 설치(파이썬/자바스크립트) (0) | 2022.12.18 |
[프로그래머스] level 3 자물쇠와 열쇠(파이썬 python) (0) | 2022.12.14 |
[프로그래머스] level 2 문자열 압축(파이썬/자바스크립트) (0) | 2022.12.13 |
[이코테] 구현_럭키 스트레이트(파이썬/자바스크립트) (0) | 2022.12.12 |
댓글