def solution(bandage, health, attacks):
answer = health
time, rec, plusrec = bandage
attacktime = []
damage = []
for attack in attacks:
curattacktime, curdamage = attack
attacktime.append(curattacktime)
damage.append(curdamage)
currtime = 0
for i in range(attacktime[len(attacktime)-1]+1):
if i in attacktime:
answer -= damage[attacktime.index(i)]
currtime = 0
else:
answer += rec
currtime += 1
if currtime == time:
answer += plusrec
currtime = 0
if answer > health:
answer = health
if answer <= 0:
return -1
return answer
유형 : 구현
풀이 시간 : 15분 정도
다양한 조건들을 충족할 수 있도록, 빠르게 코드를 작성하는 것이 관건인 문제였다.
* 최대 체력 이상으로 체력을 가지지 못한다 * 라는 부분을 구현하는 부분이 마지막에 걸렸는데,
그냥 계산이 다 끝난 이후에 health보다 answer이 크면 값을 재설정하는 방식으로 구현 성공.
'프로그래머스 > Lv. 1' 카테고리의 다른 글
8. 큰 수 만들기 ★★ (그리디, 스택) (0) | 2024.07.11 |
---|---|
7. 가장 많이 받은 선물 (0) | 2024.07.11 |
5. merge sort의 구현 (바보같은 실수. ) (0) | 2024.07.11 |
4. 문자열 정수의 합 (0) | 2024.07.11 |
3. 특수문자 출력 in python (0) | 2024.07.11 |