본문 바로가기
알고리즘/문제 풀이 (출처: 프로그래머스)

[JAVA] 붕대 감기

by 이민우 2024. 2. 24.
728x90
반응형

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 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