안녕하세요.
혼자 알고리즘을 공부중인 학생입니다.
Unbounded Knapsack Problem(이하 UKP)를
공부하던 중 모르는 것이 생겨 질문 올립니다.
설명에 앞서 질문을 요약하자면,
UKP를 2D array가 아닌 1D array를 사용하여 푸는 방법을 알고 싶습니다.
그간 책도 보고 문제도 풀면서 knapsack problem을
2D array로 푸는 방법은 알고 있습니다.
(보통, "cache[x][P] : x번째 물건까지 사용하여 P원 이하로 가방을 쌀때, 최대 가치" 로 설정하여 풀어왔습니다.)
bounded knapsack, 0-1 knapsack problem에서 캐시의 크기를
(물건 수*가능 무게)로 설정하는 것에서
(2*가능 무게)크기의 캐시로 설정하여 줄이는 방법도 배웠습니다. 이전 질문 링크
UKP에서는 1D array면 충분하다는 글을 읽었습니다.
이것은 어떻게 구현해야 할까요?
우선 pause를 넣고 하신 것은 아니죠? ^^; 입력을 정수로 전환하는 과정에서 문제가 좀 보입니다. 0.29같은 숫자는 정확하게 실수로 표현될 수 없기 때문에, 0.289999999.. 식으로 내부적으로 표현될 수 있습니다. 이걸 100곱해서 곧장 정수로 내림하시면 28이 되어버리는 수가!! 예를 들어 제 컴퓨터에서는 다음 입력에 대한 정답이 잘못 나오더군요.
canuyes
안녕하세요.
혼자 알고리즘을 공부중인 학생입니다.
Unbounded Knapsack Problem(이하 UKP)를
공부하던 중 모르는 것이 생겨 질문 올립니다.
설명에 앞서 질문을 요약하자면,
UKP를 2D array가 아닌 1D array를 사용하여 푸는 방법을 알고 싶습니다.
그간 책도 보고 문제도 풀면서 knapsack problem을
2D array로 푸는 방법은 알고 있습니다.
(보통, "cache[x][P] : x번째 물건까지 사용하여 P원 이하로 가방을 쌀때, 최대 가치" 로 설정하여 풀어왔습니다.)
bounded knapsack, 0-1 knapsack problem에서 캐시의 크기를
(물건 수*가능 무게)로 설정하는 것에서
(2*가능 무게)크기의 캐시로 설정하여 줄이는 방법도 배웠습니다.
이전 질문 링크
UKP에서는 1D array면 충분하다는 글을 읽었습니다.
이것은 어떻게 구현해야 할까요?
2012 ACM south east regional A번문제:candy store
에 적용시켜 풀어보고자 아래와 같은 코드를 만들었습니다.
그런데, 자꾸 WA를 뱉네요...
2일째 부족한 머리탓에 고민중인데..이거 어떻게 해야할까요?
ACM에서 공개한 채점데이터 링크 달아놓습니다.
답변 기다립니다.^^
인풋
아웃풋
11년 전