Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 시스템콜
- C++
- 코딩테스트연습
- substr
- 리시프
- dfs
- 다익스트라
- 참고 문헌 : MACHINE LEARNING 기계학습 _ 오일석
- 문자열
- sql고득점kit
- 백준
- 코테준비
- MySQL
- Dijkstra
- unordered_map
- 동적계획법
- 플로이드와샬
- 알고리즘
- vector
- String
- 프로그래머스
- MAP
- 우선순위큐
- 다이나믹프로그래밍
- 스택
- 정렬
- 최대공약수
- set
- DP
- 코테
Archives
- Today
- Total
YeJin's Footsteps
12865번: 평범한 배낭 본문
코테공부 빨리해야한다. 발등에 불🔥 떨어졌다!!! 🙊🙊🙊
https://www.acmicpc.net/problem/12865
12865번: 평범한 배낭
첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)
www.acmicpc.net
풀이 과정 :

풀이 코드 :
//평범한 배낭 _ 골드 5
#include <iostream>
#include <algorithm>
#include <cstdio>
#define max_N 101 // define 문 뒤에는 세미콜론을 붙이지 말자 ㅋㅋㅋㅋ
using namespace std;
int weight[max_N];
int value[max_N];
int dp[max_N][101010];
int main(void)
{
int N, K;
cin >> N >> K;
for (int i = 1; i <= N; i++)
{
cin >> weight[i] >> value[i];
}
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= K; j++)
{
if (j >= weight[i])
{ // 넣을 아이템의 무게가 j(베낭에 들어갈수 있는 무게)보다 작거나 같으면
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
}
else
{ //아얘 넣을 무게가 아님
dp[i][j] = dp[i - 1][j];
}
}
}
//결과값 출력
cout << dp[N][K];
return 0;
}
실행 결과 :


채점 결과 :

'Computer Science & Engineering > 알고리즘' 카테고리의 다른 글
신고 결과 받기 (0) | 2022.02.01 |
---|---|
[오류] : Visual Studio Code 실행 시 한글 깨짐 현상 (0) | 2022.01.27 |
1655번:가운데를 말해요 (0) | 2022.01.13 |
숫자 문자열과 영단어 (0) | 2021.09.10 |
거리두기 확인하기 (0) | 2021.09.10 |