function solution(bandage, health, attacks) {
let answer = health;
const turn = attacks[attacks.length - 1][0];
let cnt = 0;
for(let i = 0; i < turn; ++i) {
if (i + 1 === attacks[0][0]) {
answer -= attacks[0][1];
cnt = 0;
attacks.shift();
} else{
cnt++;
answer += bandage[1];
if(cnt === bandage[0]) {
answer += bandage[2];
cnt = 0;
}
if(answer >= health) answer = health;
}
if(answer <= 0) return -1;
}
return answer;
}
def solution(bandage, health, attacks):
answer = health
turn = attacks[len(attacks) - 1][0]
cnt = 0
for i in range(1, turn + 1):
if i == attacks[0][0]:
answer -= attacks[0][1]
cnt = 0
del attacks[0]
else:
cnt += 1
answer += bandage[1]
if cnt == bandage[0]:
answer += bandage[2]
cnt = 0
if answer > health: answer = health
if answer <= 0: return -1
return answer
단순 구현 문제이다.
최대한 반복하는 횟수를 줄여보고 싶었는데 나의 머리로는 잘 생각이 안나서
공격이 끝나는 횟수만큼 한 턴씩 움직이게끔 구현하였다..
처리만 잘해주면 공격하는 횟수만큼만 돌면 될 것 같은데..