[codingame] BENDER - EPISODE 1

newbieski·2021년 7월 20일
0

CodinGame

목록 보기
11/17

https://www.codingame.com/training/medium/bender-episode-1

  • 문제에서 시키는대로 구현해야하는데 이동 경로도 출력해야함
  • beer 상태일때는 벽을 부수고 이동하는 것임!

접근법

  • conditon에 대한 변수들 생성
    • vt[y][x][방향][turn][beer]
    • 처음에는 boolean으로 했으나 loop처리를 위해 int로 변경
  • 이동함수
    • 다음 이동을 결정함
    • 방향만 바뀌는 경우 방향만 바꿔놓고 return 함
      • 이때 중복 처리를 방지하기 위해 ignoreflag를 이용함
    • 위치가 바뀐 경우 이동 경로를 저장함
      • 이때 transport로 바뀌는 경우는 저장하지 않음
      • ignoreflag를 활용해서 경로를 저장함
  • loop 처리
    • 방문한 곳을 또 방문하면 loop라고 판단하였으나 예외가 있었음
      • 벽을 부수고 방문한 곳을 또 방문한 경우
    • count를 저장하면서 일정 값 이상이면 loop로 판단 : 10 ~ 20 정도로 했음
    • 빈 공간일 경우에만 체크했음
      • action을 지시하는 곳에서 처리를 하면 올바른 값이 안나왔었음

후기

  • 구현만 엄청하고 조건 찾기가 번거로운 문제였음
  • testcase를 맞아도 제출하면 다른 testcase로 수행함
profile
newbieski

0개의 댓글