프로그래머스 – 붕대 감기 Java 풀이 방법에 대해 알아보겠습니다. 문제가 조금은 헷갈릴 수 있는 것 같습니다. 자세히 읽어보시길 권해드립니다 🙂
프로그래머스 – 붕대 감기 경로
코딩테스트 연습 > PCCP 기출문제 > [PCCP 기출문제] 1번 / 붕대 감기
문제 설명 및 제한사항


붕대 감기 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;
}
}
결과

답글 남기기