[파이썬] 프로그래머스 : 붕대 감기 (Lv.1)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
방향성 생각
- iteration을 모두 돌려도 되지만 비효율적이다.
- 시간 차이에서 몫, 나머지를 사용해서 효율적으로 푸는게 정해인듯.
- 공격 - 회복 - 공격 - 회복 순서로 진행된다.
- 회복 시, 이전에 공격을 받은 시간이 필요하다.
- 예외 처리를 해줘야하므로 첫 번째 공격을 먼저 받고
- 공격 / (회복-공격) ... 순으로 진행한다.
- 마지막은 회복 안해도 되는게 살아남으면 바로 리턴해주면 된다.
전체코드
def solution(bandage, health, attacks):
prepare,regen,bonus = bandage
hp = health
# 공격
_,dmg = attacks[0]
hp -= dmg
if hp <= 0: return -1
for i in range(1,len(attacks)):
# 회복
dt = attacks[i][0]-attacks[i-1][0]-1
p,q = divmod(dt,prepare)
hp += regen*dt + bonus*p
if hp > health: hp = health
# 공격
time,dmg = attacks[i]
hp -= dmg
if hp <= 0:
return -1
return hp
코멘트
정답률이 낮아서 풀었는데 그냥 초보자들 푸는 문제라 그런듯?
'Algorithm > Simulation' 카테고리의 다른 글
[파이썬] 코드트리 : 정육면체 한 번 더 굴리기 (골드3) (0) | 2024.04.13 |
---|---|
[파이썬] 코드트리 : 예술성 (골드3) (0) | 2024.04.07 |
[파이썬] 코드트리 : 꼬리잡기놀이 (골드1) (0) | 2024.03.26 |
[파이썬] 코드트리 나무박멸 (골드4) (0) | 2024.03.05 |
[파이썬] 코드트리 : 타워 부수기 (골드1) (0) | 2024.02.29 |
[파이썬] 코드트리 싸움땅 (골드2) (0) | 2024.02.25 |
[파이썬] 코드트리 메이즈러너 (골드3) (0) | 2024.02.18 |
댓글