본문 바로가기

알고리즘 문제풀이/코드트리(삼성 기출)

팩맨(2021 하반기 오후 1번, 백준 23290 마법사 상어와 복제)

문제 링크: https://www.codetree.ai/frequent-problems//pacman

 

코드트리

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

*같은 문제: 백준 23290 - 마법사 상어와 복제

 

빡구현 문제. 매 스텝마다 (몬스터 복제 - 몬스터 이동 - 팩맨 이동 - 시체 유지시간 감소 - 복제 완료) 사이클이 반복된다.

 

팩맨은 알을 제거하지 않고 오직 해당 시점에 존재하는 몬스터만 제거하기 때문에, 복제/이동을 수행하는 함수에서 이동 결과를 tmp라는 배열에 따로 저장해두고, tmp의 상태만을 가지고 팩맨이 이동하도록 결정했다. 

 

팩맨의 이동 우선순위는 상>하>좌>우인데, 우우우->상상상 방향으로 탐색하여 최종 방향을 정했다. 현재 스텝의 살아남은 몬스터 + 현재 스텝에서 만든 알이 그대로 다음 스텝의 초기 몬스터 상태가 되기 때문에 마지막에 tmp 결과를 그대로 field 결과에 합쳐줬다.