def solution(bandage, health, attacks):
    answer = health
    time, rec, plusrec = bandage
    
    attacktime = []
    damage = []
    for attack in attacks:
        curattacktime, curdamage = attack
        attacktime.append(curattacktime)
        damage.append(curdamage)
    
    currtime = 0
    for i in range(attacktime[len(attacktime)-1]+1):
        if i in attacktime:
            answer -= damage[attacktime.index(i)]
            currtime = 0
        else:
            answer += rec
            currtime += 1
            if currtime == time:
                answer += plusrec
                currtime = 0
        if answer > health:
            answer = health
        if answer <= 0:
            return -1
    return answer

 

유형 : 구현

풀이 시간 : 15분 정도

 

다양한 조건들을 충족할 수 있도록, 빠르게 코드를 작성하는 것이 관건인 문제였다.

 

* 최대 체력 이상으로 체력을 가지지 못한다 * 라는 부분을 구현하는 부분이 마지막에 걸렸는데,

 그냥 계산이 다 끝난 이후에 health보다 answer이 크면 값을 재설정하는 방식으로 구현 성공.

복사했습니다!