All Honey Tip

프로그래머스 – 붕대 감기 Java 풀이

프로그래머스 – 붕대 감기 Java 풀이 방법에 대해 알아보겠습니다. 문제가 조금은 헷갈릴 수 있는 것 같습니다. 자세히 읽어보시길 권해드립니다 🙂



프로그래머스 – 붕대 감기 경로

코딩테스트 연습 > PCCP 기출문제 > [PCCP 기출문제] 1번 / 붕대 감기

프로그래머스 - 붕대 감기 Java 풀이 방법에 대해 알아보겠습니다.
프로그래머스 - 붕대 감기 Java 풀이 방법에 대해 알아보겠습니다.

기본 구현 문제라고 생각합니다. 아래와 같은 프로세스를 생각하고 풀었습니다.

for 마지막 공격 시간까지 시간 증가
{
if 공격?
else if 스킬 성공?
else if 스킬 진행
}

import java.util.*;

class Solution {
    public int solution(int[] bandage, int health, int[][] attacks) {
        HashMap<Integer, Integer> hm = new HashMap<>();
        int answer = health;
        int skillTime = 0;

        // 공격 시간 리스트
        for(int i = 0; i < attacks.length; i++)
        {
            hm.put(attacks[i][0], attacks[i][1]);
        }

        // 마지막 공격 시간까지
        for(int i = 1; i <= attacks[attacks.length - 1][0]; i++) {
            skillTime++;

            // 현재 시간이 공격 시간 리스트에 있나 확인
            if(hm.containsKey(i)) {
                answer -= hm.get(i);
                skillTime = 0;
            }
            // 스킬 성공으로 추가 회복량
            else if(skillTime != bandage[0]) {
                answer += bandage[1];
            }
            // 스킬 진행
            else {
                answer += bandage[1] + bandage[2];
                skillTime = 0;
            }

            // 최댓값 넘었으면 health 대입
            answer = Math.min(answer, health);

            // 죽음
            if(answer <= 0)
                return -1;
        }

        return answer;
    }
}
프로그래머스 - 붕대 감기 Java 풀이 방법에 대해 알아보겠습니다.

개발자 면접 질문 – Java


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다