[BOJ] 12981 공 포장하기 바로가기
빨간 공 R개, 초록 공 G개, 파란 공 B개를 가지고 있다.
오늘은 이 공을 박스로 포장하려고 한다. 박스에는 공이 1개, 2개, 또는 3개 들어갈 수 있다.
박스에 들어가는 공의 색은 모두 다르거나, 모두 같아야 한다.
필요한 박스 개수의 최솟값을 구하는 프로그램을 작성하시오.
첫째 줄에 R, G, B가 주어진다. (1 ≤ R, G, B ≤ 100)
첫째 줄에 필요한 박스 개수의 최솟값을 출력한다.
✍ 코드
from sys import stdin
R, G, B = map(int,stdin.readline().split())
# 공의 색이 모두 다른 경우
MIN = min(R,G,B)
result = MIN
R -= MIN
G -= MIN
B -= MIN
# 같은 공이 2개 남아 있는 경우
result += R//3 + G//3 + B//3
R %= 3
G %= 3
B %= 3
# 같은 공이 2개 남아 있는 경우
if R == 2:
result += 1
R = 0
if G == 2:
result += 1
G = 0
if B == 2:
result += 1
B = 0
# 공이 1개 혹은 두 종류의 공이 1개씩 있는 경우
if R+G+B > 0:
result += 1
print(result)