Algorithm

(Java) PCCP 기출문제 1번 / 붕대감기

Accept 2024. 1. 27. 20:25

https://school.programmers.co.kr/learn/courses/30/lessons/250137

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {
    public int solution(int[] bandage, int health, int[][] attacks) {
        int castingTime = bandage[0];
        int healthPerSecond = bandage[1];
        int additionalHealth = bandage[2];
        int endTime = attacks[attacks.length - 1][0];
        int maxHealth = health;
        int successTime = 1;
        int attackIndex = 0;
        int death = -1;

        for (int time = 1; time <= endTime; time++) {
            // 몬스터 공격
            if (attackIndex < attacks.length && attacks[attackIndex][0] == time) {
                health -= attacks[attackIndex][1];
                if (health <= 0) {
                    return death;
                }
                successTime = 1; // 몬스터 공격으로 인해 붕대 감기 시간 초기화
                attackIndex++;
            } else {
                // 캐릭터 회복
                health = Math.min(maxHealth, health + healthPerSecond);
                if (successTime == castingTime) {
                    health = Math.min(maxHealth, health + additionalHealth);
                    successTime = 1;
                } else {
                    successTime++;
                }
            }
        }

        return health;
    }
}

'Algorithm' 카테고리의 다른 글

(Java) 뒤집은 소수  (1) 2024.01.27
(Python) 알아두면 좋은 점  (0) 2024.01.27
(Java) 구간 합 구하기(백준 11659)  (0) 2023.06.06
(Java) 평균 구하기(백준 1546)  (0) 2023.06.06
(Java) 숫자의 합 구하기(백준 11720)  (0) 2023.06.04