프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
1. 주어진 문제조건에 따라서 직관적으로 해결.
2. 현재체력이 최대체력을 넘어가면 현재체력을 최대체력으로 지정
3. 몬스터에게 공격받아 현재체력이 0 이하가되면 즉시 종료
나의풀이 ( 코드 )
class Solution {
public int solution(int[] bandage, int health, int[][] attacks) {
int answer = 0;
int last = 0; // 연속성공
int monster = 0; // 몬스터의 행동
int fullHP = health; // 최대체력
for (int i = 1; i <= attacks[attacks.length - 1][0]; i++) {
if (i != attacks[monster][0]) { // 몬스터의 공격이 없으면
health += bandage[1]; // x만큼 체력회복
last++; // 연속성공 추가
if (last == bandage[0]) { // 추가회복 조건에 달성하면
health += bandage[2];
last = 0;
}
if (health > fullHP) { // 최대체력을 넘어가면 현재 hp를 최대체력으로 지정
health = fullHP;
}
} else { // 몬스터가 공격하면
last = 0; // 체력회복 연속성공 초기화
health -= attacks[monster][1];
monster++;
}
if (health <= 0) {
answer = -1;
break;
} else {
answer = health;
}
}
return answer;
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/JAVA 자바] 2개 이하로 다른 비트 (3) | 2023.12.01 |
|---|---|
| [프로그래머스/JAVA 자바] 택배상자 (0) | 2023.11.30 |
| [프로그래머스/JAVA 자바] [PCCE 기출문제] 9번 / 이웃한 칸 (0) | 2023.11.25 |
| [프로그래머스/JAVA 자바] [PCCE 기출문제] 10번 / 데이터 분석 (0) | 2023.11.25 |
| [프로그래머스/JAVA 자바] 2 x n 타일링 (0) | 2023.11.24 |