av3rs1on   2년 전

s->g->h->x OR s->h->g->x 가는 케이스 2개를 구해 s->x로 가는 결과값과 동일하다면 vector에 넣어 출력하는 식으로 구현했습니다.

s==g 인 경우나 s==h인 경우에도 s->h->x, s->g->x로 따로 빼어 겹치지 않게 하였는데 어디서 틀린건지 잘 모르겠습니다

tkdgus0782   2년 전

주석에는  시행마다 dist초기화라고 되어있는데, 코드에는 시행마다 dist를 초기화하는 부분이 없는 것 같습니다.

dist[start] = 0 ;만 초기화 할게 아니라, 

매시행마다 start를 제외한 dist전체를 INF로 초기화해주거나,  dist를 지역변수로 선언하면 될것 같네요.

0archlinux0   2년 전

s->g->h->x OR s->h->g->x 경로의 가중치 합 = s->x 을 출력, 두가지의 예외 처리만 해주면 됩니다

Edge case:

1) s == g or s == h

2) x == g or x == h

1의 경우 s->h->x, s->g->x로 따로 빼어 겹치지 않게 처리하셨다고 쓰셨는데 더 단순한 방법으로는 s에서s로 가는 가중치값을 미리 0으로 초기화,

2의 경우는 g에서 g, h에서 h로 가는 가중치값을 미리 0으로 처리함으로써 해결 할 수 있습니다.

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