본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 1단계

[PCCP 기출문제] 1번 / 붕대 감기

by 세용용용용 2024. 1. 6.

 

입출력 예 #1

 

입출력 예 #2

 

입출력 예 #4

 

 

나의 코드

def solution(bandage, health, attacks):
    answer = health
    # 연속 공격 카운트
    connect_attack = 0
    
    # 공격받는 정보 딕셔너리에 저장
    attack_dt = {}
    for i in attacks:
        attack_dt[i[0]]=i[1]
    
    # 1초 부터 마지막 시간까지 반복
    for i in range(1, attacks[-1][0]+1):
        connect_attack+=1
        # 현재 시간이 공격 정보 딕셔너리에 있으면
        # 체력 깍아주고 0 이하이면 return -1
        if i in attack_dt.keys():
            answer = answer-attack_dt[i]
            if answer<=0:
                return -1
            connect_attack=0
        # 연속 공격이 발동시 추가 회복 시켜줌
        else:
            if connect_attack==bandage[0]:
                answer = min(answer+bandage[1]+bandage[2], health)
                connect_attack=0
            else:
                answer = min(answer+bandage[1], health)
    
    # 최종 체력 return
    return answer