작성
·
419
·
수정됨
0
안녕하세요, 큰돌님, 숨바꼭질 로직에 궁금한 점이 생겨서 질문드립니다.
이 문제에서, 한 턴에 각각의 영역을 한 턴으로 생각하여 횟수를 센다는 건 이해를 하였습니다. 그런데, 다른 숨바꼭질 로직에서는 그냥 visited 배열을 사용하여 최소의 수를 구했던 걸로 알고 있습니다.
그냥 visited배열을 쓰면 같은 영역에는 같은 숫자 가 저장되어 있지 않나요?(이미 영역이 분리되어 있지 않나요?)
visited 배열 안에 있는 수를 이전과 같이 꺼내어 사용하면 되는 것 아닌가요?
왜 이 문제의 경우에만 영역을 따로 생각해야 하는 건가요?
답변 1
1
안녕하세요 love님 ㅎㅎ
아마
int visited[2][max_n + 4]
이부분을 말씀하시는 거 같은데요.
왜 저기 2가 붙어서 2차원배열로 만드냐? 이런 질문이시죠?
이 문제는 이걸 고려해야 합니다.
수빈이가
3지점에 3초만에 도착을 했습니다.
동생이 3지점에 5초만에 도착을 했죠.
이경우 서로 만날 수 있는 경우가 됩니다.
수빈이는 +1, -1을 하면서 왔다리 갔다리 하면서 해당 정점을 다시 방문할 수 있기 때문이죠.
그러려면 해당 상태값을 저장하는 배열이 필요합니다. 홀짝인 것만 체크하면 됩니다.
왜냐하면 3, 5, 7은 가능하되, 4에서 5는 안되는. 홀수와 짝수를 구별할 필요가 있습니다.
그렇기 때문에 홀짝을 구분할 상태값인 2가 추가되어 2차원배열로 처리를 해야합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.