1149번 - RGB거리
질문드리기 앞서 왜 메모리 초과가 나는지는 인지하고 있음을 말씀드립니다...
왜냐하면 어레이 리스트의 인덱스가 최대 2^999까지 담을 수 없기 때문이죠.
일단, 제 풀이를 먼저 설명드리겠습니다.
이전 색깔을 제외한 다른 두 색깔을 '선택'하는 것이기 때문에 complete binary tree형태의 의사 결정 트리 모양과 같다는 것을 생각해냈기 때문입니다.
결론적으로 보면, 의사 결정 트리의 가장 마지막 레벨(트리의 깊이)에서 최솟값이 최소비용임을 알 수 있습니다.
3.제 나름대로 메모리를 줄일려고 노력한 것은 ArrayList 2개 parent와 child를 교대로 쓴 것입니다. 기존 parent값은 필요가 없기 때문에 parent에 기존 child
를 넣고 child는 비워넣는 것 입니다.
@제가 생각한 방법의 문제는 자명합니다. 3을 쓴다고 하더라도 입력크기가 최악의경우 1000인데, 이러면 가장 마지막 레벨의
요소 개수는 2^1000/2=2^999이기 때문에 터지는 것이죠.
어떻게 하면 더욱 효율적으로 풀 수 있을까요?? 답변자분들의 도움 부탁드립니다.
풀이를 보니 저보다 고수신것같아 힌트만 올리고 가옵니다.
일단 올려두신 풀이가 이해가 되지 않아 글쓴이님의 풀이방식에서 더 효율적으로 풀 방법은 잘 모르겠습니다.
다만 너무 어렵게 생각하신게 아닌가 싶습니다.
전 N과 관계없이, 연산을 위한 추가 메모리로 int 3개만 사용했습니다.
답변 감사합니다. :)
댓글을 작성하려면 로그인해야 합니다.
dasd412 4년 전
질문드리기 앞서 왜 메모리 초과가 나는지는 인지하고 있음을 말씀드립니다...
왜냐하면 어레이 리스트의 인덱스가 최대 2^999까지 담을 수 없기 때문이죠.
일단, 제 풀이를 먼저 설명드리겠습니다.
이전 색깔을 제외한 다른 두 색깔을 '선택'하는 것이기 때문에 complete binary tree형태의 의사 결정 트리 모양과 같다는 것을 생각해냈기 때문입니다.
결론적으로 보면, 의사 결정 트리의 가장 마지막 레벨(트리의 깊이)에서 최솟값이 최소비용임을 알 수 있습니다.
3.제 나름대로 메모리를 줄일려고 노력한 것은 ArrayList 2개 parent와 child를 교대로 쓴 것입니다. 기존 parent값은 필요가 없기 때문에 parent에 기존 child
를 넣고 child는 비워넣는 것 입니다.
@제가 생각한 방법의 문제는 자명합니다. 3을 쓴다고 하더라도 입력크기가 최악의경우 1000인데, 이러면 가장 마지막 레벨의
요소 개수는 2^1000/2=2^999이기 때문에 터지는 것이죠.
어떻게 하면 더욱 효율적으로 풀 수 있을까요?? 답변자분들의 도움 부탁드립니다.