8-U 다른풀이 질문
173
작성한 질문수 28
안녕하세요 큰돌 선생님 강의 감사합니다..
해당 문제를 처음에 보고 dp로 풀 수 있을것 같아서 접근했는데 원하는 답이 나오지 않아 선생님 강의를 보고 다익스트라로 해결하였습니다.
근데 혹시 이 문제 dp로는 해결할 수 없을까요?
http://boj.kr/b2b9e324cd1644e7a5edb8caf23830aa
처음 dp로 해결하려던 코드입니다. 사실 예제 2번 부터 답이 틀려서 완전 틀린 코드이지만 어디가 틀렸는지 잘 모르겠습니다.
dp의 매개변수로는 y좌표, x좌표, 그리고 d라는 이전에 왔던 방향을 뜻하는 매개변수를 넣었습니다.
현재의 값이 상하좌우 어디에서 온건지에 따라 최적의 값이 달라지기에 d를 추가하였습니다.
dp배열의 초기값은 -1로 초기화했고, 또한 방문여부를 해결하기 위해서 visited배열을 만들어 해결하였습니다.
답변 1
1
안녕하세요 명운님 ㅎㅎ
사실 DP로 최단거리를 푼다...
라고 봤을 때 유사한 방법 중 하나는 플로이드워셜을 들 수 있습니다.
근데 이것또한 메모이제이션을 적용한다기 보다는 완화시킬 수 있는 정점들을 다시 한번 완화를 시켜서 최단거리를 만들거든요...
그러한 완화가 이 코드에는 없기 때문에 틀리지 않았나 싶습니다.
좀 더 자세히 설명하자면요.
플루이드워셜같은 경우 모든 간선들을 다시한번 완화가 될 가능성이 있는지를 보고 더 완화를 합니다.
하지만 이 DP의 코드 경우.
예제2를 예로 들면
3 -> 7 -> 2 -> 0 -> 1 까지의 간선을 만들면 더이상 완화를 하지 않습니다. 그다음에는 그저 메모이제이션이 일어나겠죠.
하지만 정답은
그 다음. 완화를 해야 하는
3 7 2 0 1
2 8 0 9 1
1 2 1 8 13, 2, 1, 2, 1, 0, 2, 0, 1, 1, 1
이후..
0 5
-> 19
이라는 간선인데요.
이게 반례가됩니다.
명운님이 만드신 DP의 점화식은 이것입니다.
dp[i][j][d] = min( i, j 이후의 4방향으로 부터의 거리)
근데 여기서 드는 의문은
dp[i][j] = min(i, j 이후의 4방향으로부터의 거리)
가 맞지 않나라는 생각과
이렇게 했을 때 이후에 만약 다시한번 어떠한 간선을 기반으로 저 정점을 완화시킬 때 정점자체가 이미 메모이제이션이 걸려있어서 완화 가 안 될 것같습니다.
예를 들어
1 -> 2 -> 3 -> 4
-> 5
에서 DP로 하게 되면 3에는 최소거리가 담겨있겠지만
예를 들어
2 -> 6 -> 7 -> 3 이라는 간선이 있고 이게 최적해라면
그 때 3정점까지 드갔을 때 이미 계산된 3이라는 값이 있기 때문에 메모이제이션으로 return ret 이 될것이고 완화가 안 될 것 같습니다.
감사합니다.
0
아하.. 완탐으로 풀 수 있을것 같긴한데 시간초과때문에 메모이제이션만 잘 하면 되지 않을까 하고 dp로 접근했는데 완화를 시키지 못하는 코드이군요.. 답변 정말 감사합니다!
교안 158페이지 문의드립니다
0
18
2
코딩살구클럽 관련 건의사항
0
36
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
20
1
진행 방법 질문드립니다!
0
52
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
58
2
2주차 개념#12 트리 순회
0
27
2
백준사이트가 종료된다고 합니다.
0
287
2
백준 서비스 종료
9
890
1
sk 하이닉스 코테 대비
0
368
2
3-G 최댓값 질문
0
51
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
83
2
3-I 코드 질문드립니다.
0
62
2
3-N 질문 있습니다.
0
66
2
학습방법
0
102
2
4-H 질문 있습니다 (코드 리뷰)
0
66
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
170
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
69
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
64
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
51
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
68
2
함수별 시간복잡도
0
73
2
3-h 질문입니다.
0
49
1
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
0
53
2
1-I 문제 질문 드립니다.
0
76
2





