: 시작점으로부터 모든 더러운 칸을 순회하면서 최단 거리로 더러운거 다 처리하는 거를 출력하는 문제인데
문제를 음미해보면, 더러운거 끼리 - 간의 경우의 수를 구해야 한다.
1-2-3 으로 갈때가 최소비용일 수 있고,
// 132 / 213 / 231 / 312 / 321 순으로 갈때가 최소비용일 수 있따.
-> 일단은 순열을 진행해야 겠다
: 더러운 친구들의 최대 개순는 10개이므로 10! : 360만.
-> 시간복잡도는 bfs이므로 400 10번(더러운거 최대 10개)
// 400 은 20 20(w, h)
=> 최종 시간복잡도는 360만 400 10 인데 이미 시간초과.
: 매순간 bfs를 하지 말고 distT[startP][endP]로 만들어서
순열 이뤄진 상태에서 이렇게 하면 좋을 듯 하다.
시작점에서 더러운칸으로 못가면 -1처리해야 한다.
문제에서 모든 더러운 친구들을 청소해야 한다.