https://school.programmers.co.kr/learn/courses/30/lessons/250137
문제에서 시키는대로 구현하면 되는 시뮬레이션 문제입니다.
몬스터의 마지막 공격이 있을때까지 데미지를 계산하며 체력을 회복합니다. 이때 붕대를 x초 감게 되면 추가적으로 체력을 회복하는것을 신경써야 합니다. 구현에는 다음 과정들이 필요합니다.
1. 시간을 늘려가며 체크해 공격이 들어왔다면 데미지 계산, 체력이 0 이하라면 -1을 return
2. 공격이 들어오지 않았다면 붕대를 1초 더 감고 체력을 회복
2-1. 붕대를 x초째 감았다면 체력을 추가 회복, 붕대를 감은 연속 횟수를 0으로 초기화
def solution(bandage, health, attacks):
h, idx, b, e = health, 0, 0, attacks[-1][0]
for i in range(e + 1):
if i == attacks[idx][0]:
h -= attacks[idx][1]
b = 0
idx += 1
else:
b += 1
h = min(health, h + bandage[1])
if b == bandage[0]:
b = 0
h = min(health, h + bandage[2])
if h <= 0:
return -1
return h
728x90