Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스택
- solved.ac플래티넘
- 과제진행하기
- JS
- 이중지도
- 알고리즘 문제풀이
- 코어자바스크립트
- 두원사이의정수쌍
- Lv3
- [pccp 기출문제]
- 최소스패닝트리
- 정렬
- 백준알고리즘
- 타겟넘버
- pccp기출문제
- 2023카카오블라인드코테
- DP
- solved.ac골드
- 지도 여러개
- JS스터디
- 비트마스크
- 알고리즘문제풀이
- React.StrictMode
- 프로그래머스
- Lv2
- 5강클로저
- c++
- 백준 알고리즘
- 우박수열정적분
- div2개
Archives
- Today
- Total
호지
[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기 문제풀이 JS 본문
attack을 for문으로 돌려 해당 attack전에 회복량이 얼마인지 판별하면 되는 문제이다.
도중에 체력이 0이하가 되면, 바로 return -1을 한다.
현재 체력은 초당 회복량을 더하고, 연속 성공을 했을 경우 추가 회복량을 더해주면 된다.
모든 for문 종료 후 체력이 0이하일 때 return -1을 하고
그 외의 경우엔 currentHealth를 return 하면 된다.
const solution = (bandage, health, attacks) => {
let time = 0
let currentHealth = health
for (const [attackTime, damage] of attacks) {
let healTime = attackTime - 1 - time
currentHealth = currentHealth + bandage[1] * healTime
while (healTime >= bandage[0]) {
currentHealth += bandage[2]
healTime -= bandage[0]
}
if (currentHealth >= health) currentHealth = health
currentHealth -= damage
time = attackTime
if (currentHealth <= 0) return -1
}
if (currentHealth <= 0) return -1
return currentHealth
}
https://school.programmers.co.kr/learn/courses/30/lessons/250137
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 주차 요금 계산 문제풀이 JS (0) | 2024.07.26 |
---|---|
[프로그래머스] [PCCP 기출문제] 2번/ 석유시추 문제풀이 JS (5) | 2024.07.23 |
[프로그래머스] 우박수열 정적분 문제풀이 JS (0) | 2023.09.19 |
[프로그래머스] 숫자카드 나누기 문제풀이 JS (0) | 2023.09.19 |
[프로그래머스] 귤 고르기 문제풀이 JS (0) | 2023.09.19 |
Comments