프로그래머스 [PCCP 기출문제] 1번

강인호·2023년 11월 24일
0

알고리즘 문제풀이

목록 보기
34/36

function solution(bandage, health, attacks) {
    const [maxTime,HPS,bonusHeal] = bandage
    let maxHP = health
    
    let time = 0
    let successCount = 0
    
    for(let i=1;i<1001;i++){
        time +=1
//         공격이 해당 시간에 들어오면 체력 - , 성공 카운트 초기화, 해당 공격 처리 후 제거 
        if(time===attacks[0][0]){
            successCount = 0
            health -= attacks[0][1]
            attacks = attacks.filter((d,index)=>index!==0)
            
        if(health<=0){
            return -1
        }
            
            if(attacks.length===0){
                return health
            }
        }else{
//             공격이 들어오지 않았으면 초당 회복량만큼  회복 후 성공 카운트 증가, 
            successCount +=1
            health += HPS
            if(successCount===maxTime){
                health += bonusHeal
                successCount = 0
            }
            if(health>maxHP){
                health = maxHP
            }
        }
        
    }
        
}

순차적으로 시간에 대한 변수 값을 증가시키면서 성공 카운트와 health 계산을 해주고 조건문을 달아서 return 해주는 방식으로 짰다.

maxHP에 대한 처리, 시간 성공카운트 공격 에 대한 순서만 신경 써주면 크게 어려운 부분은 없는것같다.

0개의 댓글