https://school.programmers.co.kr/learn/courses/30/lessons/250137
# t초 동안 붕대 감기
# 1초마다 x만큼 회복 => 총 t*x만큼 회복
# t초 연속으로 붕대 감기 성공 => +y체력
# 공격 당해서 기술 취소 or 연속 성공 0으로 초기화
# 체력이 0 이하 되면 그냥 끝
def solution(bandage, health, attacks):
# bandage: t초, 1초당 회복량, y
# health: 최대 체력
max_health = health
success = 0
time = [x[0] for x in attacks]
for t in range(1, max(time)+1):
if t in time:
success = 0
attacked = attacks[time.index(t)][1]
health -= attacked
else:
success += 1
health += bandage[1]
# 1. 연속 성공 달성 여부 -> 추가 최복이 있기 때문
if success == bandage[0]:
health += bandage[2]
success = 0
# 2. max를 넘기면 max로 제한
if health > max_health:
health = max_health ###
# 3. 0 이하면 -1
if health <= 0:
return -1
return health
728x90
반응형
'🔻PS > Programmers' 카테고리의 다른 글
[Programmers] 프로그래머스 문자열 나누기 Python (0) | 2024.09.04 |
---|---|
[Programmers] 프로그래머스 모의고사 Python (0) | 2024.07.16 |
[Programmers] 프로그래머스 완주하지 못한 선수 Python (0) | 2024.07.16 |
[Programmers] 프로그래머스 네트워크 Python (0) | 2024.07.16 |
[Programmers] 프로그래머스 추억 점수 Python (0) | 2024.07.16 |