leekaejoon   5년 전

메모리 초과를 막기 위해  adj list를 구현하여 문제를 풀어보았는데요 메모리 이전에 너무 많은 시간을 잡아 먹어서 시간초과가 뜹니다.

혹시라도 C++ 이 아닌 C로 조건에 맞게 풀려면 어떻게 해야 할지 모르겠어서 문의드립니다.

djm03178   5년 전

리스트에 원소를 추가할 때 그 순서가 중요한 것이 아니라면, 리스트의 맨 앞에 새 노드를 끼워넣고 그 노드가 원래의 첫 노드를 가리키게 하는 방식으로 O(1)에 삽입이 가능합니다.

순서가 중요하고 맨 뒤에 끼워넣어야 하는 거라면, 맨 끝을 가리키는 포인터를 지정해서 역시 O(1)에 해결할 수 있습니다.

leekaejoon   5년 전

말씀해주신 조언대로 삽입 시간을 줄여보았는데요 

이럼에도 불구하고 시간초과가 나오네요 

오히려 제가 만든 adj list 가 인접 행렬 보다  시간을 너무 많이 잡아 먹기도 하면서 최단 경로를 찾기위해 bfs를 사용해서 그런지 1초 안에는 죽었다 깨도 안될거 같은 느낌이네요 ㅠ

한계가 여기인건지 너무 좌절스럽네요....

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