19236. 청소년 상어_중요한 백트래킹

·2025년 9월 24일
0

백준 알고리즘

목록 보기
253/272
post-thumbnail

고찰 : 변수 정할때

  • 변경되는 것들을 보면,
    1) board 에 저장되는 번호
    2) dir 이다.

  • 맨 처음에 풀 때는 물고기 번호 순서대로 진행된다고 해서 fish[16]개 정해서 접근했는데,,
    -> 굳이 만들지 않고도 접근할 수 있기때문에 변수 선언하기 전에 생각해봐야 한다.

구현 부분은 맞았따!

왜 틀렸을까?

: 예제를 통해 나의 풀이전략의 문제점을 알아보자.

  • 상어는 12 또는 15 또는 8을 잡아먹고, 표식 처리 후에
    해당 pos로 가서 백트래킹을 진행해야 한다.

  • 제출번호 : 98884603 로 진행했을 때 이고,
    12를 먹는다고 하자.

  • 12와 6을 먹는다. 그런데 6의 경우 dir는 위로 향하기 때문에 종료된다.

  • 자 이제 그러면 다시 원복한 상태에서 이제는 15를 먹으면서 백트래킹 진행하려고 한다.

  • 그런데 12의 백트래킹 완료된 상태의 vertex를 보면 이렇다...
    -> vertex는 원복이 되어야 하는데. 왜 이럴까?

백트래킹 문제이다.

  • 내가 작성한 코드이고, sY , sX 는 shark의 위치이고,

  • 아래의 vertex는 그냥 계속 갱신되는 값일 뿐 원복은 절대로 할 수 없는 상태의 코드이다.

  • 즉 15를 진행하는 시점에서는 과거로 돌아와서 해야 하는데, 지금 미래 시점의 vertex로 되어 있다는 것이다.

핵심
: vertex 도 백트래킹 처리해야 한다.

정답 코드

  • 제출번호 98885267

: 그냥 vertex 와 dirV 도 전부 백트래킹에 사용가능하게 변경함.

profile
🔥🔥🔥

0개의 댓글