반응형
문제
https://www.acmicpc.net/problem/32986
코드
x, y, z = map(int ,input().split())
temp = min(x, y, z)
if temp <= 2:
print(0)
elif x == y == z == 3:
print(0)
else:
print((temp - 1) // 2)
그리디 문제입니다.
문제의 핵심은 최적으로 건포도를 확인할 수 있는 단면의 두께인 2를 최소한으로 만드는 겁니다.
케이크의 가장 얇은 곳을 자르면 되겠죠?
케이크의 가장 얇은 면 | 1 | 2 | 3 | 4 | 5 |
잘라야하는 수 | 0 | 0 | 1 | 1 | 2 |
이런식이기 때문에 (가장 얇은 면) - 1 // 2 을 출력하면 됩니다.
예외 케이스로 3 x 3 x 3 케이크가 있는데 이 케이크는 안잘라도 건포도가 어디있는지 알기에
(건포도가 겉에 없으면 안에 있는거니까요)
3x3x3 케이크는 안잘라도 알 수 있다는 것에 유의하면 됩니다. (0을 출력)
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[프로그래머즈/Python] 2022 블라인드 카카오 - 양궁대회 (0) | 2025.01.05 |
---|---|
[백준/Python] 11758번 CCW (0) | 2025.01.02 |
[백준/Python] 32690번 Starlight Express (0) | 2024.12.04 |
[백준/Python] 1238번 파티 - (다익스트라) (0) | 2024.11.27 |
[백준/Python] 1717번 집합의 표현 - (유니온파인드) (0) | 2024.11.26 |
댓글