728x90

소스코드
package programmers;
import java.util.HashMap;
import java.util.Map;
public class PCCP기출문제1번 {
static int curHealth;
static Map<Integer, Integer> attackMap = new HashMap<>();
static int maintainTime;
static int endTime;
public int solution(int[] bandage, int health, int[][] attacks) {
curHealth = health;
endTime = attacks[attacks.length - 1][0];
//공격시간 별 데미지 맵으로 초기화 해주기
for (int i = 0; i < attacks.length; i++) {
attackMap.put(attacks[i][0], attacks[i][1]);
}
//0초는 초기상태이기 때문에 굳이 for문으로 순회할 필요가 없고, 1초부터 endTime까지 순회하자.
for (int i = 1; i <= endTime; i++) {
//공격을 받는 시간대라면
if (attackMap.containsKey(i)) {
curHealth -= attackMap.get(i);
maintainTime = 0;
}//공격을 받는 시간이 아니라면
else {
maintainTime++;
curHealth += bandage[1];
if (maintainTime == bandage[0]) {
curHealth += bandage[2];
maintainTime = 0;
}
if (curHealth > health)
curHealth = health;
}
if (curHealth <= 0) return -1;
}
return curHealth;
}
}
- 느낀점
구현문제는 감이 생명인 것 같다. 한동안 구현문제를 풀지않으니 사고는 하고있지만 바로 코드로 녹여내기가 쉽지 않았다. 꾸준하게 구현문제를 풀어보자
'알고리즘' 카테고리의 다른 글
| pccp 4번문제(Dfs & backtracking) -java (1) | 2023.12.02 |
|---|---|
| 백준 14503 변형 bfs문제 -java (1) | 2023.12.02 |
| 프로그래머스 PCCP 2번문제 -java (0) | 2023.12.02 |
| 백준 알고리즘 2644 DFS & BFS -java (1) | 2023.12.02 |
| 프로그래머스 가장 먼 노드 bfs문제 -java (0) | 2023.12.02 |