Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[ 프로그래머스] PCCP 기출 문제 1번 [Python, 파이썬] 본문
- 문제 : https://school.programmers.co.kr/learn/courses/19344/lessons/242258
- 🔑 말 그대로 구현하기
- 1초 단위로 계산을 했다.
- 공격받는 시간이 되면 attacks리스트에서 빼내고 공격을 받는다.
- 연속 성공 횟수 초기화
- 죽으면 -1 리턴
- 공격받는 시간이 아니라면 회복을 한다.
- 초당 회복
- 최대 체력 이상 넘어가지 않게 컨트롤
- 연속 성공 횟수에 도달하면 추가 회복하고 횟수 초기화
- 죽지 않고 살아 있다면 남은 HP를 리턴하면 끝 ✨
def solution(bandage, health, attacks):
success = 0 # 연속 성공 횟수
time = 1
hp = health
while attacks:
if time == attacks[0][0]: # 공격 받는 시간이 되면
t, damage = attacks.pop(0)
hp -= damage # 데미지 받음
success = 0 # 연속 성공 횟수 초기화
time += 1 # 시간도 흐름
if hp <= 0: # 죽었으면 끝
return -1
else: # 공격 받는 시간이 아니면
hp += bandage[1] # 초당 회복
success += 1 # 연속 성공 횟수 증가
time += 1 # 시간 흐름
if success == bandage[0]: # 연속 성공 횟수가 다 차면
hp += bandage[2] # 추가 회복
success = 0 # 연속 성공 횟수 초기화
if hp > health: # HP가 최대 체력 넘어가면
hp = health # 최대 최력으로 고정
return hp
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 순위 검색 [Python, 파이썬] KAKAO (2) | 2023.11.25 |
---|---|
[프로그래머스] PCCP 기출 문제 2번 [Python, 파이썬] (0) | 2023.11.06 |
[프로그래머스] Lv.3 길 찾기 게임 [Python, 파이썬] KAKAO (0) | 2023.10.31 |
[프로그래머스] Lv.2 리코쳇 로봇 [Python, 파이썬] (1) | 2023.10.30 |
[프로그래머스] Lv.2 전력망을 둘로 나누기 [Python, 파이썬] (0) | 2023.10.29 |
Comments