[백준 2545][Python] 팬케익 먹기

봉글렛·2022년 12월 31일

백준

목록 보기
10/55

문제 링크 https://www.acmicpc.net/problem/2545

처음에는 간단하게 a,b,c 중에 가장 큰 수를 D만큼 for문을 돌리면 -1씩해주는 방식으로 풀었는데 시간초과로 인해 다른 방법으로 접근했습니다.
위에 생각한 식으로 진행했을때 a와 b와 c의 길이는 점점 같아 진다는 생각으로 접근했습니다.

풀이

t = int(input())
result = []
for _ in range(t):
    input()
    a, b, c, d = map(int, input().split())
    a, b, c = sorted((a, b, c))
    s = a + b + c - d
    tmp = min(s // 3, a)
    a1 = tmp
    s -= tmp
    tmp = min(s // 2, b)
    print(a1*tmp*(s-tmp))
profile
어쩌다 개발자 (할 수 있을 때까지!!!!)

0개의 댓글