728x90
https://school.programmers.co.kr/learn/courses/30/lessons/250137
728x90
메모리: 89.9 MB, 시간: 0.04 ms
사용 알고리즘: 구현
class Solution {
public int solution(int[] bandage, int health, int[][] attacks) {
// 현재 체력
int answer = health;
// 공격 시작
answer -= attacks[0][1];
for(int i = 1; i < attacks.length; i++) {
// 이전 공격으로 생존에 실패한 경우
if(answer <= 0) break;
// 이번 공격이 시작하기 전까지 1초마다 회복
answer += (attacks[i][0] - attacks[i - 1][0] - 1) * bandage[1];
// 연속 성공으로 추가로 받은 체력
answer += ((attacks[i][0] - attacks[i - 1][0] - 1) / bandage[0]) * bandage[2];
// 최대 체력을 넘을 수 없음
answer = answer > health ? health : answer;
// 몬스터 공격
answer -= attacks[i][1];
}
// 생존 실패한 경우
if(answer <= 0) answer = -1;
return answer;
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 250135] [PCCP 기출문제] 3번 / 아날로그 시계 (java) (0) | 2024.08.17 |
---|---|
[프로그래머스, 250136] [PCCP 기출문제] 2번 / 석유 시추 (java) (0) | 2024.08.17 |
[프로그래머스, 60060] 가사 검색 (java) (0) | 2024.08.16 |
[프로그래머스, 42579] 베스트앨범 (java) (0) | 2024.08.16 |
[프로그래머스, 42885] 구명보트 (java) (0) | 2024.08.16 |