ji_iin
iOSLog
ji_iin
전체 방문자
오늘
어제
  • 분류 전체보기 (56)
    • Swift (8)
    • iOS (6)
    • 알고리즘 (34)
    • CS (3)
    • 회고 (3)
    • 제품리뷰 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 재귀
  • django
  • ios
  • Python
  • 알고리즘개념
  • 깊이우선탐색
  • SWiFT
  • 2022년 회고
  • opional
  • 백트래킹
  • 구조체와 클래스
  • 대기업코테
  • 수학
  • Bye2023
  • 프로그래머스
  • 다이나믹 프로그래밍
  • swiftUI
  • 파이썬
  • 알고리즘
  • 그래프탐색
  • 공식문서
  • 개발회고
  • 회고
  • 그래프이론
  • 브루트포스 알고리즘
  • 자바
  • 정렬
  • 너비우선탐색
  • 깊은복사와 얕은복사

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ji_iin

iOSLog

알고리즘

[Python] 백준 11052번 - 카드 구매하기

2021. 8. 6. 23:19

문제

11052번: 카드 구매하기

[ 문제 조건 ]

  • 카드 개수 < 가격
  • i개의 카드, 가격은 Pi
  • 즉, 가격을 최대값으로 구해야 한다.

[ 예제 풀이 ]

#1장 샀을때 최대가격 dp[1] =1 
dp[1] = dp[1], dp[0] + list[1] 

#2장 샀을때 최대가격 dp[2] = 5 
dp[2] = dp[2], dp[1] + list[1] #1 + 1 (1장짜리 2개) 
dp[2] = dp[2], dp[0] + list[2] #0 + 5 (2장짜리 1개) 

#3장 샀을때 최대가격 dp[3] = 6 
dp[3] = dp[3], dp[2] + list[1] #5 + 1 (2장짜리 1개 + 1장짜리 1개) 
dp[3] = dp[3], dp[1] + list[2] #1 + 5 (1장짜리 2개 + 2장짜리 1개) 
dp[3] = dp[3], dp[0] + list[3] #0 + 6 (3장짜리 1개) 

#4장 샀을때 최대가격 dp[4] = 10 
dp[4] = dp[4], dp[3] + list[1] #6 + 1 (3장짜리 1개 + 1장짜리 1개) 
dp[4] = dp[4], dp[2] + list[2] #5 + 5 (2장짜리 2개) *정답* 
dp[4] = dp[4], dp[1] + list[3] #1 + 6 (1장짜리 1개 + 3장짜리 1개) 
dp[4] = dp[4], dp[0] + list[4] #7 (4장짜리 1개)

[ 점화식 ]

dp[i] = max (dp[i-j], dp[i-j] + list[j] )

✏️한줄평

다이나믹 프로그래밍 알고리즘의 정석 같은 느낌의 문제다. 점화식을 세우는 건 그래도 헷갈린다. 예제를 풀이하다가도 왜 이게 이 값이였지 헷갈리는게 DP 문제인 듯 하다😅


코드

'알고리즘' 카테고리의 다른 글

[Python] map 함수로 2차원배열의 최대값 구하기  (0) 2021.08.09
[Python] 백준 9020번 - 골드바흐의 추측  (0) 2021.08.06
[JAVA] 백준 1245 - 농장 관리  (0) 2021.07.26
[JAVA] 백준 11057 - 오르막 수  (0) 2021.07.25
[JAVA] 백준 7569번 - 토마토  (0) 2021.07.25
    '알고리즘' 카테고리의 다른 글
    • [Python] map 함수로 2차원배열의 최대값 구하기
    • [Python] 백준 9020번 - 골드바흐의 추측
    • [JAVA] 백준 1245 - 농장 관리
    • [JAVA] 백준 11057 - 오르막 수
    ji_iin
    ji_iin
    개발성장일지🐥

    티스토리툴바