구름-그라운드 게임에는 통증이라는 시스템이 있다. 통증 수치가 높다면 게임에서 승리하기 어려워지므로, 아이템을 적절히 사용해 통증 수치를 0으로 유지하는 것이 중요하다.
게임 안에는 통증 수치를 감소시켜 주는 아이템이 3 종류가 있다. 아이템의 이름은 bandage,medicine,painkiller이고, 각 아이템을 사용시 1,7,14만큼 통증 수치를 감소시켜 준다. 각 아이템은 원하는 만큼 획득할 수 있다. 플레이어는 적과의 전투에서 피해를 입어 현재 N의 통증 수치를 가지고 있다. 플레이어가 통증 수치를 0으로 줄이기 위해 필요한 아이템의 최소 개수를 구해보자. 단, 사용했을 때 통증 수치가 0보다 작아지는 아이템은 사용할 수 없음에 유의하시오.
첫째 줄에 플레이어의 통증 수치를 나타내는 정수 N이 주어진다.
def number_of_items(int1):
bandage = 1
medicine = 7
painkiller = 14
p1 = int1//painkiller
if p1 >= 1: # at least one painkiller
int2 = int1 - painkiller*p1
m1 = int2//medicine
if m1 >= 1:
int3 = int2 - medicine*m1
return p1 + m1 + int3 # Use all p, m, b
else:
return p1 + int2 # Use p, b
else: # no painkiller
m1 = int1//medicine
if m1 >= 1:
int2 = int1 - medicine*m1
return m1 + int2 # Use m, b
else:
return int1
input1 = input()
print(number_of_items(int(input1)))
더 효율적으로 구현하는 방법이 있지 않을까?
→ 구하는 방식은 똑같지만 훨씬 간단하게 다시 풀었다. (25.03.20)
n = int(input())
if n >= 14:
a = n//14
rest = n-14*a
b = rest//7
rest1 = rest - 7*b
print(a+b+rest1)
elif 7 <= n < 14:
a = n//7
rest = n-7*a
print(a+rest)
else:
print(n)