상세 컨텐츠

본문 제목

[백준] 2545 팬케익 먹기 (Baekjoon Problem 2545: Eat Pancake)

파이썬

by Riella 2023. 6. 12. 09:43

본문

728x90

문제 출처

 

[문제 요약]

A가 펜케익을 T번 먹을때 남는 펜케익의 부피를 가장 크게 남길때의 부피를 구하는 것이다.

한번 먹을때 1cm 만큼 팬케이크의 한 변이 줄어든다.

 

[풀이]

우선 test case의 개수를 input으로 받는다.

각 test case는 W(width), D(depth), H(height)와 t(먹는 횟수)를 input으로 주는데

가장 남는 부피를 크게 남기려면 W, D, H의 크기를 비슷하게 맞춰주어야한다.

그래서 셋 중 가장 큰 변의 크기를 1cm 씩 iterative 하게 줄이는 풀이가 easy 한 난이도를 통과하기 무난하다.

 

[유의할 점]

test case의 개수와 input이 1칸씩 더 띄워져있기 때문에 input을 받을떼 유의할것.

 

[파이썬 3 코드]

def max_minus1(x, y, z):
    if x > y:
        if x > z:
            return x-1, y, z
        else:
            return x, y, z-1
    else:
        if y > z:
            return x, y-1, z
        else:
            return x, y, z-1

if __name__ == "__main__":
    cases = int(input())
    _ = input()

    max_sizes = []
    for i in range(cases):
        w, d, h, t = map(int, input().split(" "))
        for j in range(t):
            w, d, h = max_minus1(w, d, h)
        if i != cases-1:
            _ = input()
        max_sizes.append(w*d*h)

    for k in range(len(max_sizes)):
        print(max_sizes[k])

관련글 더보기

댓글 영역