인프런 커뮤니티 질문&답변

Estados Unidos님의 프로필 이미지
Estados Unidos

작성한 질문수

IT 기업 취업을 위한: 코딩테스트 혼자서 정복하기 (C/C++)

배낭문제 구현2 - main 내부 작성

배낭문제가 백준문제로 있어서 작성했는데 왜 안되는지 알 수 있을까요?

작성

·

384

0

https://www.acmicpc.net/problem/12865

 

#include <iostream>

#include <algorithm>

using namespace std;

int N, K;

int W[101];

int V[101];

int DP[101][100001];

int main()

{

scanf("%d%d", &N, &K);

for (int i = 1; i <= N; i++){

scanf("%d %d", &W[i], &V[i]);

}

for (int i = 1; i <= N; i++)

{

for (int j = 1; j <= K; j++)

{

if (j < W[i])

{

DP[i][j] = DP[i-1][j];

}

else

DP[i][j] = max(DP[i-1][j],DP[i-1][j-W[i]]-V[i]);

}

}

printf("%d", DP[N][K]);

}

 

안녕하세요? 정올 문제로 배낭문제 수강하고 똑같이 있는 백준문제를 발견하고 작성한 코드인데 채점을 하면 틀렸다고 뜹니다. 혹시 이유를 알 수 있을까요?

답변 1

1

조이스터디님의 프로필 이미지
조이스터디
지식공유자

안녕하세요 Estados Unidos님.

질문해주신 백준의 문제는 영상에서 다룬 문제와 다릅니다.

영상의 경우에는 1개의 물건을 최대 1개 담을 수 있지만, 올려주신 백준 문제에선 해당 제약이 없습니다.

따라서, 올려주신 백준 문제는 아래 정올 문제와 동일합니다.
https://jungol.co.kr/problem/1077?cursor=eyJwcm9ibGVtc2V0IjoiOCIsImZpZWxkIjo2LCJpZHgiOjd9

Estados Unidos님이 만족하시는 답변이 되었기를 바라며, 답변 해결로 상태 변경을 부탁드립니다.

이후에도 문제를 풀거나 공부하시면서 어려운 점이 있다면 질문 올려주세요.

감사합니다.

Estados Unidos님의 프로필 이미지
Estados Unidos

작성한 질문수

질문하기