본문 바로가기
💻 하나씩 차곡차곡/프로그래머스 (Python)

[프로그래머스/Lv.1/Python] [PCCP 기출문제] 1번 / 붕대 감기

by 뚜루리 2024. 1. 4.
728x90
320x100
def solution(bandage, health, attacks):

    maxHealth = health # 최대체력 저장
    time = 0 # 현재시간
    continueSuccess = 0 # 연속성공횟수
    maxTime = attacks[-1][0] # 마지막 공격시간
    attackDict = {} # 공격시간, 피해량 dic
    for attack in attacks:
        attackDict[attack[0]] = attack[1]

    while time <= maxTime:
        if time in attackDict : # 몬스터 공격시
            health -= attackDict[time] # 체력 감소
            continueSuccess = 0 # 연속성공횟수 초기화

            # 공격 후 체력이 0이하 라면
            if health <= 0 :
                return -1
        else : # 붕대감기 성공시
            continueSuccess += 1 # 연속성공횟수 증가

            if continueSuccess == bandage[0] : # 연속성공횟수 달성시
                health = health + bandage[1] + bandage[2] # 체력 증가
                if health > maxHealth:
                    health = maxHealth
                continueSuccess = 0 # 연속성공횟수 초기화
            else :
                health += bandage[1]
                if health > maxHealth:
                    health = maxHealth

        time += 1 # 시간증가

    return health
728x90
320x100