11657번 - 타임머신
벨만-포드를 읽고 다익스트라 코딩 패턴을 이용해 풀어보려고 했습니다.
노드 별로 갱신 횟수를 저장하고 갱신 횟수가 N(노드 수) - 1 보다 크면 싸이클을 감지하고 종료하는 방법입니다.
그런데 43%에서 틀렸다고 나오네요.
'출력 초과'가 아닌 '틀렸습니다'가 출력되는 바 싸이클이 없는데 싸이클이 있다고, 즉 k 개의 답을 출력해야 하는데 -1을 출력하고 있는것 아닌가 하는 생각이 듭니다.
논리적으로 잘못된 부분을 못찾겠어서 흥미롭습니다.
반례를 제시해주시거나 틀린 부분을 지적해주시면 감사하겠습니다.
저도 벨만 포드 알고리즘을 모르는 상태에서 다익스트라로 풀기 위해 이와 유사한 코드를 작성했습니다.
혹시 왜 다익스트라로 풀면 오류가 나는지 원인을 알게 되셨습니까?
댓글을 작성하려면 로그인해야 합니다.
grasshoppertrainer 3년 전 1
벨만-포드를 읽고 다익스트라 코딩 패턴을 이용해 풀어보려고 했습니다.
노드 별로 갱신 횟수를 저장하고 갱신 횟수가 N(노드 수) - 1 보다 크면 싸이클을 감지하고 종료하는 방법입니다.
그런데 43%에서 틀렸다고 나오네요.
'출력 초과'가 아닌 '틀렸습니다'가 출력되는 바 싸이클이 없는데 싸이클이 있다고, 즉 k 개의 답을 출력해야 하는데 -1을 출력하고 있는것 아닌가 하는 생각이 듭니다.
논리적으로 잘못된 부분을 못찾겠어서 흥미롭습니다.
반례를 제시해주시거나 틀린 부분을 지적해주시면 감사하겠습니다.