nick1324   3년 전

다른 사람의 코드를 보니까 가격을 먼저 오름차순 정렬하고 가격이 같으면 덩어리를 내림차순으로 정렬하게끔 했습니다.

그런데 하다가 궁금해졌는데 결국 라인 34에 if (w >= M)를 처음으로 들어가는 순간 라인 37를 거쳐서 minimum이 결정되면 거기서 이제 끝난거 아닌가요?

그래서 line38에 주석과 같이 break를 걸어줘도 될거라고 생각하는데 break가 있으면 틀렸다고 뜨네요. 이유가 뭘까요? 애초에 if (w >= M)를 들어갔다는 것은 해당 요구 무게를 채웠다는 거고 이미 가격을 오름차순으로 정렬한 상태에서 더 이상 들어가봐야 가격만 증가될뿐인데 그렇게 되면 처음 이 조건문을 들어왔을 때보단 무조건 비싸게 된다는 건데 왜 한번만 들어가면 끝나는 것을 몇번이고 들어갈까요? 같은 가격이라고 해도 가격은 누적될 뿐인데 어쩌피 요구 무게만 채웠으면 그 가격으로 된거 아닌가요? 도저히 모르겠네요 반례를 들어주시면 너무너무 감사하겠습니다!!!

kyo20111   3년 전

먼저 달성되었다고 무조건 최소는 아닙니다.

nick1324   3년 전

감사합니다!!

댓글을 작성하려면 로그인해야 합니다.