새소식

반응형
250x250
Programmers/Lv.1

프로그래머스 - 붕대 감기

  • -
728x90
반응형

반응형

 

프로그래머스 Lv.1 정답률 낮은 순부터 풀어보고 있는데

 

 그 이상한 카카오톡 선물하기 보다는 이 문제가 훨씬 쉽게 느껴졌다.

 

문제를 보기 편해서 그런가..?

 

이 문제는 공격 시간과 그 전 공격 시간 사이의 간격만 잘 파악하면 쉽게 풀 수 있는 문제였다.

 

먼저 이전 공격시간과 공격시간의 차이가 1초이면 회복을 할 수 없다는 점이 

 

문제 푸는데 나름 함정이라면 함정이라고 할 수 있었다.

 

그 부분을 빼면 거의 대부분의 분들이 어렵지 않게 풀 수 있을 것이다.

 

class Solution {
    public int solution(int[] bandage, int health, int[][] attacks) {
    
        int casting = bandage[0];
        int heal = bandage[1];
        int bonusHeal = bandage[2];
        int maxHealth = health;
        
        int preAtkTime = attacks[0][0];
        
        for(int i = 0; i < attacks.length; i++) {
            int atkTime = attacks[i][0];
            int atkDemage = attacks[i][1];
            
            int between = atkTime - preAtkTime - 1;
            if(between > 0) {
                health += heal * between;
                health += bonusHeal * (between / casting);
                
                if(health > maxHealth) {
                    health = maxHealth;
                }
            }
            health -= atkDemage;
            if(health <= 0) return -1;
            preAtkTime = atkTime;
        }
        
        return health;
    }
}
728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.