9370번 - 미확인 도착지
우선 저의 생각은,
1. s -> 각 후보들(candidate)로 가는 비용을 먼저 계산하여 candidate_straight에 저장하고
2. s -> g -> h -> candidate, s -> h -> g -> candidate로 가는 비용들을 각각 candidate_via1, candidate_via2에 저장하여
3. 2번에서 구한 값들 중 INF이 아니면서 1번과 같은 값인 candidate만 answer에 따로 저장한 후
4. answer을 정렬하여 출력 후 초기하하는 과정입니다.
아무리 생각해도 오류를 발견하지 못해서 도움 주신다면 정말 감사하겠습니다.
참고로 priorityQueue는 라이브러리에 있는 게 아니고 제가 직접 만든 건데 코드 길이가 너무 길어져서 main과 dijkstra 부분만 가져왔습니다.
1
5 4 2
1 2 3
1 2 1
2 3 1
3 4 1
2 5 1
4 5
답: 4
반례가 아닐지?
dh0450님 예제 주신 건 감사하지만 4라고 맞게 출력하네요 ㅜㅜ
4번 초기화 과정에서 다음 테스트케이스 입력을 위해 그래프(adjacent)도 초기화해야 하는데 이걸 깜박했네요..
혹시 다른 분들도 초기화 잘 하셨는지 한 번씩 확인 바라요!
댓글을 작성하려면 로그인해야 합니다.
toothless1818 1년 전
우선 저의 생각은,
1. s -> 각 후보들(candidate)로 가는 비용을 먼저 계산하여 candidate_straight에 저장하고
2. s -> g -> h -> candidate, s -> h -> g -> candidate로 가는 비용들을 각각 candidate_via1, candidate_via2에 저장하여
3. 2번에서 구한 값들 중 INF이 아니면서 1번과 같은 값인 candidate만 answer에 따로 저장한 후
4. answer을 정렬하여 출력 후 초기하하는 과정입니다.
아무리 생각해도 오류를 발견하지 못해서 도움 주신다면 정말 감사하겠습니다.
참고로 priorityQueue는 라이브러리에 있는 게 아니고 제가 직접 만든 건데 코드 길이가 너무 길어져서 main과 dijkstra 부분만 가져왔습니다.