panteoniq   6년 전

check 배열을 두어 한 번 방문한 노드를 체크하게 했습니다(이후에 방문했다는 뜻은 시간이 더 지난 후에니까 굳이 볼 필요가 없잖아요?)

position 배열은 특정 위치 position[i]까지 가는 데 걸리는 시간을 저장합니다


우선 값을 입력받은 이후 위치가 같거나, 한 번만에 갈 수 있는 경우를 체크하고

그렇지 않다면 바로 BFS를 돌립니다

큐는 당연히 비어 있을 일이 없겠지만 예외를 막기 위해 while문의 조건으로 두었고요

현재 시작점에서 -1, +1, *2를 한 위치 -> 그 각각 위치에서 다시 -1, +1, *2를 한 위치...이렇게 확장해가면서 원하는 위치에 도착하는 경우를 확인합니다

맞는 거 같은데 70%에서 틀렸다고 하네요...도와주세요 ㅠ

djm03178   6년 전

main 함수의 if나 else if에 걸려들었다면 BFS를 하지 말아야 됩니다. 출력이 두 번 되니까요.

panteoniq   6년 전

헐;;;

저걸 놓치고 있었네요 BFS 문제인 줄 알고 그것만 보고 있었는데....감사합니다 ㅠㅠ

panteoniq   6년 전

아 문제점 하나 더 발견했습니다


34~45번째 줄의 두 개의 if문에서

cur_pos+1<=MAX랑 cur_pos*2<=MAX를 하면 인덱스 에러가 발생합니다

<=를 모두 <로 바꿔야 합니다! 이 글 보시는 분들 참조하세요!

댓글을 작성하려면 로그인해야 합니다.