01
Processing Data. Please Wait...

디스크쌓기

Dynamic Programming 중급
30초 미리보기

디스크쌓기

디스크를 나타내는 정수배열이 주어집니다. 하위 배열에는 3개의 정수가 있으며, 각각의 숫자는 디스크의 너비, 깊이 및 높이를 나타냅니다. 우리의 목표는 디스크를 쌓아서 높이를 최대화하는 것입니다. 위에 있는 디스크는 그 아래에 있는 디스크보다 너비, 깊이 및 높이가 작아야 합니다.

맨 위의 디스크에서 시작하여 하단 디스크로 끝나는 최종 디스크 배열을 반환하는 함수를 작성합니다. 디스크를 회전할 수는 없으며, 각 하위 배열의 정수는 항상 [너비, 깊이, 높이]를 나타내야 합니다.

총 높이가 가장 큰 스택은 하나만 있다고 가정할 수 있습니다.

예제 1

입역

disks = [
    [2, 1, 2], 
    [3, 2, 3], 
    [2, 2, 8], 
    [2, 3, 4], 
    [1, 3, 1], 
    [4, 4, 5]
]

출력

[[2, 1, 2], [3, 2, 3], [4, 4, 5]]
// 디스크의 총 높이는 10 (2 + 3 + 5) 입니다.