Algorithm/programmers
[파이썬]programmers: [PCCP 기출문제]1번 / 붕대감기
갈잃자
2024. 1. 8. 16:54
https://school.programmers.co.kr/learn/courses/30/lessons/250137
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
간만에 코테문제..
알고리즘은 다 까먹고, 우선 오랜만에 쓰는 파이썬과 친해지기 위해 단순구현 문제 풀이
import copy
def solution(bandage, health, attacks):
answer = 0;
attTime = [];
attDamage = [];
# 공격분류
for i in range(len(attacks)):
attTime.append(attacks[i][0]);
attDamage.append(attacks[i][1]);
maxTime = max(attTime);
maxHealth = copy.deepcopy(health);
# 계산
cnt = 0;
for i in range(1, maxTime + 1):
cnt += 1;
# 공격시간인 경우
if i in attTime:
health -= attDamage[0];
attDamage.pop(0);
attTime.pop(0);
cnt = 0;
if health <=0:
return -1
# 공격시간이 아닌경우
else:
# 연속 성공이 성공했을 때,
if cnt == bandage[0]:
cnt = 0;
if maxHealth - (health + bandage[1] + bandage[2]) >= 0:
health += bandage[1];
health += bandage[2];
else:
health = maxHealth;
# 연속 성공이 아직 안된경우
else:
if maxHealth - (health + bandage[1]) >= 0:
health += bandage[1];
else:
health = copy.deepcopy(maxHealth);
answer = health;
if health <= 0:
return -1
return answer