9019번 - DSLR
일단 맞췄긴 했는데
시간이 무려 5400ms 나 나옵니다..; 푸신거 보니깐 740ms 도 나오던데 차이가 너무 심해서
살펴보니깐 경로를 배열로 출력하는거 같은데 이해가 잘 안되더라구요... ( 사고가 막힌느낌 ..;)
제 알고리즘은 BFS인데 큐에 저장하는 정보를 구조체로 정의했습니다.
구조체에는 DSLR 계산한 숫자와 각각의 BFS 노드마다 지나온 경로를 저장하기 위한 trace 벡터를 저장합니다.
그러니깐 모든 노드에는 계산한 값과 그 노드가 어떤 경로로 오게됬는지 알기 위한 배열을 가집니다.
1
2 3 4
1에서 2, 3, 4 노드를 BFS알고리즘에 따라 집어 넣으면
2번 노드 경로는 1,2
3번 노드 경로는 1,3
4번 노드 경로는 1,4
가 저장되고... 이런식으로 각각 자기 부모로 부터 얻은 위치에 자기 위치를 추가해서 저장하는... 식으로요..
BFS나 DFS 풀때마다 경로 출력하는 문제를 접하게 되는데
항상 이런식으로 풀다보니깐 메모리와 시간이 후달려서 질문드립니다.
댓글을 작성하려면 로그인해야 합니다.
artage7 6년 전
일단 맞췄긴 했는데
시간이 무려 5400ms 나 나옵니다..; 푸신거 보니깐 740ms 도 나오던데 차이가 너무 심해서
살펴보니깐 경로를 배열로 출력하는거 같은데 이해가 잘 안되더라구요... ( 사고가 막힌느낌 ..;)
제 알고리즘은 BFS인데 큐에 저장하는 정보를 구조체로 정의했습니다.
구조체에는 DSLR 계산한 숫자와 각각의 BFS 노드마다 지나온 경로를 저장하기 위한 trace 벡터를 저장합니다.
그러니깐 모든 노드에는 계산한 값과 그 노드가 어떤 경로로 오게됬는지 알기 위한 배열을 가집니다.
1
2 3 4
1에서 2, 3, 4 노드를 BFS알고리즘에 따라 집어 넣으면
2번 노드 경로는 1,2
3번 노드 경로는 1,3
4번 노드 경로는 1,4
가 저장되고... 이런식으로 각각 자기 부모로 부터 얻은 위치에 자기 위치를 추가해서 저장하는... 식으로요..
BFS나 DFS 풀때마다 경로 출력하는 문제를 접하게 되는데
항상 이런식으로 풀다보니깐 메모리와 시간이 후달려서 질문드립니다.