smgod   4년 전

자꾸 틀렸다고 나오는데 어느 부분을 수정해야 할지 모르겠습니다. 

게시판 예제와 문제 출저의 예제중 몇개를 넣어봤는데 정상적으로 작동합니다. 하지만 채점을 하면 틀렸습니다만 나와서 해결을 못하고 있습니다.


도와주시면 매우 감사하겠습니다.ㅜㅜ

1207koo   4년 전

1. 44, 54에서 visit배열 값을 바꿔 줄 때가 문제입니다.

예를 들어서 visit[from]을 visit[to]로 바꾼다고 할 때

from값이 작다고 할 때 for문을 돌면서 visit[from]의 값이 먼저 바뀌면 if문에서 visit[from]이랑 값이 같은지 확인할 때가 문제가 됩니다

visit: 1, 2, 2, 2, 3이고 index1이 from, index 4가 to일 때

1, 3, 2, 2, 3이 됩니다. (index1이 3으로 바뀌고 나서 그 뒤에 2들은 새로 바뀐 visit[from]=3과 다르기 때문에 바뀌지 않습니다)

2. 그리고 시간 초과가 날 것 같은 코드지만... 이건 union find를 공부해보세요.

간단하게 설명하자면 역시 44, 54번째 줄에서 visit 값을 바꿔주는 것, 체크하는 것 등을 빠르게 할 수 있는 방법이 있습니다.

smgod   4년 전

감사합니다 ㅜㅜㅜㅜ

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