본문 바로가기

프로그래밍

[DP] 막대기 자르기

아직 DP 를 푸는 전반적인 방법은 여기를 참조해 주세요.

DP 연습 문제 : 막대기 자르기 

n 인치 길이의 막대기와 n 보다 작은 조각들의 길이에 따른 가격이 적힌 배열이 주어집니다. 막대기를 쪼개어 조각들로 나눴을때 얻을 수 있는 최대의 값을 찾으세요. 예를 들면, 8 인치 막대기와 사이즈에 따른 값은 아래와 같습니다. 

length   | 1    2    3    4    5    6    7    8 
--------------------------------------------
price     | 1    5    8    9   10   17   17   20

그렇다면 얻을 수 있는 최대 값은 22 입니다. (2 와 6으로 자르면서 얻을 수 있음)

그리고 가격이 아래와 같이 달라진다면, 얻을 수 있는 최대 값은 24 입니다. (1 인치 짜리를 8개로 만듦)

length   | 1   2   3   4   5   6   7   8 
--------------------------------------------
price    | 3   5   8   9  10  17  17  20

정답을 보시기 전에 : 여기를 클릭해서 한번 연습해 보세요. 문제는 다르지만 더욱 쉬운 자르기 문제 입니다.