처음 제출한 코드는 실행했을 때의 테스트케이스에선 통과했으나 제출해보니 몇 가지 테스트케이스에서 실패했다.
def solution(bandage, health, attacks):
answer = health
t, x, y = bandage
t_series = 0
i = 0
for second in range(attacks[-1][0]+1):
if second == attacks[i][0]:
answer -= attacks[i][1]
if answer <= 0:
return -1
i += 1
t_series = 0
continue
else:
answer += x
t_series += 1
if t_series == t:
answer += y
if answer > health:
answer = health
return answer
테스트 1 〉 통과 (0.01ms, 10.2MB)
테스트 2 〉 통과 (0.02ms, 10.3MB)
테스트 3 〉 통과 (0.01ms, 10.3MB)
테스트 4 〉 통과 (0.01ms, 10.2MB)
테스트 5 〉 통과 (0.01ms, 10.1MB)
테스트 6 〉 통과 (0.01ms, 10.2MB)
테스트 7 〉 통과 (0.07ms, 10.2MB)
테스트 8 〉 통과 (0.03ms, 10.2MB)
테스트 9 〉 통과 (0.06ms, 10MB)
테스트 10 〉 통과 (0.01ms, 10.4MB)
테스트 11 〉 통과 (0.14ms, 10.3MB)
테스트 12 〉 통과 (0.11ms, 10.2MB)
테스트 13 〉 통과 (0.13ms, 10MB)
테스트 14 〉 실패 (0.15ms, 10.2MB)
테스트 15 〉 통과 (0.16ms, 10.3MB)
테스트 16 〉 실패 (0.07ms, 10.2MB)
테스트 17 〉 통과 (0.03ms, 10.3MB)
테스트 18 〉 실패 (0.19ms, 10.2MB)
테스트 19 〉 통과 (0.14ms, 10.3MB)
테스트 20 〉 실패 (0.20ms, 10.2MB)
그래서 다시 한 번 살펴보니 한 줄을 빼먹어서 그런 거였다... ㅎ
t_series = 0
를 추가해서
def solution(bandage, health, attacks):
answer = health
t, x, y = bandage
t_series = 0
i = 0
for second in range(attacks[-1][0]+1):
if second == attacks[i][0]:
answer -= attacks[i][1]
if answer <= 0:
return -1
i += 1
t_series = 0
continue
else:
answer += x
t_series += 1
if t_series == t:
answer += y
t_series = 0
if answer > health:
answer = health
return answer
제출하니 정답!