728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/250137
class Solution {
public int solution(int[] bandage, int health, int[][] attacks) {
// 현재 체력
int healthNow = health;
// 몬스터의 마지막 공격이 끝나는 시간
int lastTime = attacks[attacks.length-1][0];
// 다음 공격
int nextAttack = 0;
// 붕대 감기 지속시간
int bandageTmp = 0;
for(int i=1; i<=lastTime; i++) {
if(i == attacks[nextAttack][0]) {
// 몬스터의 공격 시간이라면
bandageTmp = 0;
healthNow -= attacks[nextAttack][1];
if(healthNow <= 0) {
healthNow = -1;
break;
}
nextAttack++;
}
else {
// 공격 시간이 아니라면
bandageTmp++;
healthNow += bandage[1];
if(bandageTmp == bandage[0]) {
// 시전시간을 전부 했다면
healthNow += bandage[2];
bandageTmp=0;
}
if(healthNow > health) {
healthNow = health;
}
}
}
return healthNow;
}
}
728x90
반응형
'알고리즘 > 문제 풀이 (출처: 프로그래머스)' 카테고리의 다른 글
[JAVA/BFS] 숫자 변환하기 (0) | 2024.05.07 |
---|---|
[JAVA/DFS]단어 변환 (0) | 2024.02.24 |
[JAVA/DFS] 여행경로 (0) | 2024.02.24 |
[JAVA/DFS] 네트워크 (0) | 2024.02.23 |
[JAVA/BFS] 가장 먼 노드 (0) | 2024.02.23 |