백준 12865 - 평범한 배낭

2020. 1. 21. 16:20·Algorithms/BOJ

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

전형적인 DP 문제입니다.

import sys
N,K= map(int,sys.stdin.readline().split())	#입출력 
result=[[0 for _ in range(K+1)]for _ in range(N)]	#허용할수 있는 K의 가치의 범위
for i in range(N):	
    weight,value=map(int,sys.stdin.readline().split())	#입출력
    for idx in range(1,K+1):	#K를 범위에 포함
        if idx>=weight:	#무개가 같거나 큰경우 비교대상
            result[i][idx]=max(result[i-1][idx],result[i-1][idx-weight]+value)	#비교
        else:
            result[i][idx]=result[i-1][idx]	#아닌 경우 이전의 값이 그대로 최대를 유지
print(max(result[-1]))	#가장 마지막 어레이의 최대값 출력

KEYPOINT


1. 배낭에 하나씩 넣는다.

2. 새로운 아이템이 배낭에 들어갈때 새로운 아이템을 넣을때의 가치와 기존의 아이템을 유지할때의 가치를 비교한다.

3. 가치판단에 따라 순차적으로 모든 아이템을 배낭에 담을때의 최대의 가치를 측정하고 갱신한다.

4. 마지막 배열(모두 넣어보고 판단한 경우)의 최대값을 return 한다.

 

배낭 상황표 참조:https://huiyu.tistory.com/entry/DP-01-Knapsack%EB%B0%B0%EB%82%AD-%EB%AC%B8%EC%A0%9C

'Algorithms > BOJ' 카테고리의 다른 글

백준 14503 - 로봇 청소기  (0) 2020.02.05
백준 2455 - 지능형 기차  (0) 2020.02.04
백준 7569 - 토마토  (0) 2020.01.29
백준 1012 - 유기농 배추  (0) 2020.01.28
백준 2583 - 영역구하기  (0) 2020.01.28
'Algorithms/BOJ' 카테고리의 다른 글
  • 백준 2455 - 지능형 기차
  • 백준 7569 - 토마토
  • 백준 1012 - 유기농 배추
  • 백준 2583 - 영역구하기
dev.wookii
dev.wookii
Effort Maketh Happiness
  • dev.wookii
    습관처럼
    dev.wookii
  • 전체
    오늘
    어제
    • 분류 전체보기 (295)
      • Language (35)
        • python (13)
        • C++ (22)
      • Kaggle (4)
      • Algorithms (112)
        • BOJ (58)
        • programmers (43)
        • SWExpertAcademy (2)
      • Certification (38)
        • Adsp (0)
        • Sqld (28)
        • 정처기 (9)
        • 빅데이터 분석기사 (0)
      • Data Analysis & ML (6)
      • 금융 & 디지털 (65)
      • CS (32)
        • DB (2)
        • SE (3)
        • Web&JSP (1)
        • Network (11)
        • OS (2)
        • Linux&Unix (6)
        • Server (1)
        • UX,UI (1)
        • 보안 (5)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    2020 KAKAO
    programmers
    시뮬레이션
    Ebay korea #coding test
    funny algorithms
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.wookii
백준 12865 - 평범한 배낭
상단으로

티스토리툴바