🧩 BE
home

250137_붕대감기

담당자
완료 여부
Solved
요약
날짜
2025/04/15
태그
구현
난이도
Lv1
출처
프로그래머스
붕대를 감으면 체력 회복, 공격 당하면 체력 감소
공격을 당하면 기술이 취소됨
취소되면 그 즉시 붕대감기를 수행
연속으로 붕대 감기를 성공하면 보너스 체력
중간에 공격을 받고 남은 체력을 계산해서 사망여부를 리턴해야하는데, 남은 체력부터 계산해버리는 바람에 -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
복사