[알고리즘] BOJ 12981 공 포장하기

김상현·2022년 3월 23일
0

알고리즘

목록 보기
56/301
post-thumbnail

[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)
profile
목적 있는 글쓰기

0개의 댓글