프로그래머스 – 붕대 감기 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; } }
답글 남기기