이번 문제는 구현만 할 수 있으면 간단하게 풀 수 있는 문제였다.
평소 게임을 좋아했기 때문에 게임처럼 체력이 깎이고 회복하는 기능을 구현하는 것이 재밌었다.
class Solution {
public int solution(int[] bandage, int health, int[][] attacks) {
// 해당 변수의 값까지 카운트가 되면 추가 회복
int healTime = bandage[0];
// 연속 회복시간
int successHeal = 0;
// 초당 회복량
int heal = bandage[1];
// 추가 회복량
int bonusHeal = bandage[2];
// 몬스터의 매 공격을 따라가는 커서가 될 변수
int attack = 0;
// 최대체력
int maxHealth = health;
// 몬스터의 마지막 공격시간까지 반복문 돌림.
for(int i = 1; i <= attacks[attacks.length-1][0]; i++) {
// 공격을 받았을 시
if(attacks[attack][0] == i) {
health -= attacks[attack][1];
// 다음 공격으로 넘어가고
attack++;
// 연속회복 초기화
successHeal = 0;
// 체력이 0이 되어 죽으면 -1 리턴
if(health <= 0) {
return -1;
}
// 공격을 받지 않았을 시
} else {
// 연속회복 카운트하고 초당회복 진행
successHeal++;
health+=heal;
// 연속회복이 기준치를 달성하면 추가회복 후 연속회복 초기화
if(successHeal == healTime) {
health+=bonusHeal;
successHeal = 0;
}
// 최대체력 이상 회복 불가능
if(health > maxHealth) {
health = maxHealth;
}
}
}
return health;
}
}'프로그래머스 1단계' 카테고리의 다른 글
| 프로그래머스 [이웃한 칸] (0) | 2026.03.02 |
|---|---|
| 프로그래머스 [동영상 재생기] (0) | 2026.02.28 |
| 프로그래머스 [택배 기사] (0) | 2026.02.28 |
| 프로그래머스 코테 연습 [유연근무제] (0) | 2026.02.27 |