17304번 - 변호사들
일단 제 알고리즘의 방식은,
1. 각 변호사들이 신뢰하는 변호사들의 수를 저장해준다.
2. 같은 변호사들로 이루어진 쌍, 그러니까 양방향 edge가 등장하면 따로 루프임을 명시해준다.
3. 만약 신뢰하는 변호사의 수가 0인 변호사가 있으면 NO.
4. 그 다음 루프 관계를 가진 두 변호사가 서로 말고 신뢰하는 변호사가 없으면 NO. (54번 줄)
5. 그 다음은 YES.
정답 알고리즘이 YES인 걸 제 알고리즘이 NO 할 리는 없어 보이고, NO인 걸 YES로 출력하는 걸로 예상되는데, 그걸 보여주는 반례가 있을까요?
반례입니다.
3 41 22 11 33 1
답 : NO
감사합니다! 답변 덕분에 이해됐어요!
서로 신뢰하는 관계의 변호사 간 두 edge를 이거 하나 저거 하나 없애보면서 DFS로 구상해볼게요!
댓글을 작성하려면 로그인해야 합니다.
dlguswo333 4년 전
일단 제 알고리즘의 방식은,
1. 각 변호사들이 신뢰하는 변호사들의 수를 저장해준다.
2. 같은 변호사들로 이루어진 쌍, 그러니까 양방향 edge가 등장하면 따로 루프임을 명시해준다.
3. 만약 신뢰하는 변호사의 수가 0인 변호사가 있으면 NO.
4. 그 다음 루프 관계를 가진 두 변호사가 서로 말고 신뢰하는 변호사가 없으면 NO. (54번 줄)
5. 그 다음은 YES.
정답 알고리즘이 YES인 걸 제 알고리즘이 NO 할 리는 없어 보이고, NO인 걸 YES로 출력하는 걸로 예상되는데, 그걸 보여주는 반례가 있을까요?