•
붕대를 감으면 체력 회복, 공격 당하면 체력 감소
•
공격을 당하면 기술이 취소됨
•
취소되면 그 즉시 붕대감기를 수행
•
연속으로 붕대 감기를 성공하면 보너스 체력
중간에 공격을 받고 남은 체력을 계산해서 사망여부를 리턴해야하는데, 남은 체력부터 계산해버리는 바람에 -1 리턴하는 테스트케이스에서 자꾸 실패했다ㅠ 그거 외에는 문제가 좀 길어서 불편했다 정도
class Solution {
public int solution(int[] bandage, int health, int[][] attacks) {
int t = bandage[0]; // 시전 시간
int x = bandage[1]; // 초당 회복량
int y = bandage[2]; // 연속 회복
int maxHealth = health; // 최대 체력
int successTime = 0; // 연속 성공 시간
int fightTime = attacks[attacks.length - 1][0]; // 총 싸움 시간
int idx = 0;
for (int i = 0; i <= fightTime; i++) {
// 몬스터별 공격 시간과 현재 시간이 같으면
if (attacks[idx][0] == i) {
health -= attacks[idx][1];
successTime = 0;
idx++;
if (health <= 0) {
return -1;
}
// 공격 시간이 아니라면?
} else {
health += x;
successTime++;
if (successTime == t) {
health += y;
successTime = 0;
}
if (health > maxHealth) {
health = maxHealth;
}
}
}
return health;
}
}
Java
복사