GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[9주차_수요일] 외판원 #114

Closed Jewan1120 closed 1 week ago

Jewan1120 commented 2 weeks ago
### 🤔 시간복잡도 고려사항

### 💡 풀이 아이디어

이 문제는.. 모르면 못 푸는 전형적인 문제인 것 같아요.. 새로운 개념 같이 공부합시다!

baexxbin commented 2 weeks ago

🤔 시간복잡도 고려사항


💡 풀이 아이디어

icegosimperson commented 2 weeks ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

 public static int tsp(int c, int v) {
        if(v==(1<<N)-1){ // 모든 노드를 방문할 경우
            return W[c][0] == 0 ? INF : W[c][0]; // 시작 도시(0)로 돌아감 (돌아갈 수 없으면 INF 반환)
        }
        if(d[c][v] !=0){ // 이미 방문한 노드라면
            return d[c][v]; // 바로 반환
        }
        int min_val = INF;
        for(int i=0; i<N; i++){
            if((v&(1<<i))==0 && W[c][i] !=0){ // 방문한 적 없고 갈 수 있는 노드라면
                min_val = Math.min(min_val, tsp(i, (v | (1 << i))) + W[c][i]); // 현재도시(c) -> 다음 도시(i) 최소 비용 계산
            }
        }
        d[c][v] = min_val;
        return d[c][v];
    }
yeongleej commented 2 weeks ago

🤔 시간복잡도 고려사항

1) 완전탐색으로 모든 도시 탐색하는 경우 => N! == 16! : 10억 -> 시간초과

2) DP, 비트마스킹 활용 => 도시 방문 : O(N N) => 방문처리 : O(2^N) => O(NN * 2^N) 가능

💡 풀이 아이디어

INF 값을 Ingteger.MAX_VALUE 로 하니깐 오버플로우나서 헤맸습니다,,,ㅎㅎㅎㅎ

KodaHye commented 2 weeks ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

외판원 순회 문제 꼭 풀어봐야지,,, 하다가 일년이 넘은거 같은데,, 이제야 풀어보네요!!! 좋습니다👍 그리고 이 블로그에 비트마스킹 정리가 아주 잘 되어 있더라구요! 이거 보면 비트마스킹에 대한 내용에 도움 많이 될 것 같습니다!

Jewan1120 commented 2 weeks ago

🤔 시간복잡도 고려사항

travelling_salesman_problem

💡 풀이 아이디어

yeahdy commented 1 week ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어