[codingame] RIVER CROSSING

newbieski·2022년 1월 26일
0

CodinGame

목록 보기
17/17

https://www.codingame.com/training/medium/river-crossing

문제요약

  • 농부/늑대/염소/양배추가 강을 건넘
  • 농부는 + 1을 갖고 강을 건널 수 있음
  • 모든 상태는 조건을 지켜야함
    • 농부가 없는 상태에서 늑대 + 염소 안됨
    • 농부가 없는 상태에서 염소 + 양배추 안됨
  • 상태표시는 L, R, L, R 같이 표시
  • 시작상태 -> 끝 상태 가는 가장 짧은 경로, 짧은 경로가 여러개면 알파벳으로 앞서는 것접근법
  • BFS + 경로 추적
  • 어짜피 상태는 2^4 = 16개임
  • python에서 방문 처리 + 경로 추적은 set으로 구현함
  • 착각했던 점
    • 어떤 상태로 오는 가지 수는 1개이므로 유일한 경로만 있을 것 같은데?
    • 반례 L R L L => R R L R, L R L R => R R L R
  • 농부의 상태를 봐서
    • R이면 앞에서부터 L로 바꾸는 것이 유리하므로 앞에서부터 탐색
    • L 이면 뒤에서부터 R로 바꾸는 것이 유리하므로 뒤에서부터 탐색
profile
newbieski

0개의 댓글