반응형

문제
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/250137

구현
시간에 따라 반복하면 매우 비효율적이기 때문에
attack 배열을 반복하면서 각 attack 사이의 delta 값을 위주로 계산해서 풀이 하려고 했다.
아래 코드를 보면 조금 더 쉽게 이해할 수 있을 것이다.
코드

조금 잘리긴 했지만 설명을 하자면 각 attack time 간격을 계산해서 delta_time에 넣었다.
공격당하기 전까지의 시간까지 회복할 수 있으니 -1을 해줬다.
health의 최대치를 넘지 않게 해 주었고, 회복을 완료할만한 시간이 있었는지는 //연산으로 계산한 후 damage만큼 빼줬다.
계산식은 아래와 같다.
health = min(max_health, health + delta_time*bandage[1] + (delta_time//bandage[0])*bandage[2]) - damage
다른 풀이
다른 사람들의 풀이를 보면 조금 복잡하게 되어 있거나 비슷해서 이번 포스트에는 따로 넣지 않겠다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 가장 많이 받은 선물 python 풀이 (0) | 2024.12.21 |
---|---|
[프로그래머스] 택배 배달과 수거하기 Python 풀이 (0) | 2023.06.29 |
[프로그래머스] 배열 조각하기 Python 풀이 (2) | 2023.04.21 |
[프로그래머스] 요격 시스템 python 풀이 (1) | 2023.04.17 |
[프로그래머스] 두 원 사이의 정수 쌍 Python 풀이 (0) | 2023.04.17 |
댓글