kkb910711   2년 전

제가 짠 코드가 런타임 에러가 나네요..

어디서 에러가 나는지는 모르겠네요...

처음에는 입력을 받으면서 출력을 하도록 짰는데, 그렇게하면 테스트케이스가 여러개일 경우 이클립스에서도 에러가 나더군요(입력이 제대로 이루어지지 않아서)

그래서 위의 에러와 비슷한 에러라고 생각하고 밑에 짠 소스와 같이 수정했습니다. 입력을 받으면서 결과를 출력하는 것이 아니라 나중에 한꺼번에 출력하도록요.. 그런데도 런타임에러가 나는군요...

어디서 어떻게 잘못된건지 알려주시면 감사하겠습니다.

kkb910711   2년 전

질문자입니다. 위의 소스의 문제점은 입력문제가 아니라 다른 문제였다는 것을 찾았습니다.

위의 소스의 문제점은 노드의 수가 100,000개 일 경우 힙영역 초과 에러가 뜨더군요..[100,000 * 100,000 크기의 int배열을 선언하기에 너무 큼]

그래서 바꾼 밑의 소스처럼 list로 구현하였습니다. list도 구현하면 아무래도 배열보다는 크기를 줄일 수 있어서 입니다.

하지만 list로 구현했을 때는 시간초과 에러가 뜨더군요... (dfs, bfs 둘다 에러)

아무래도 배열은 한번에 접근할 수 있지만, list로 구현할 경우에는 하나씩 찾아봐야 하니까 오래 걸리는 거겠죠..

다른 분들은 어떻게 풀었는지 궁금합니다... 


제 소스는 우선 리스트로 그래프를 구현했습니다

그 후 각 노드에서 출발하여 dfs(또는 bfs)로 모든 노드로 갈 수 있는 경우에만 출력을 합니다.

만약 모든 노드로 갈 수 있는 출발 노드가 하나도 없을 경우는 "Confused"를 출력하라고 했습니다.

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