๐ก ํ์ฌ ๋ ๋ฒจ1์์ ์ ๋ต๋ฅ ์ ์ผ ๋ฎ์ ๋ฌธ์
์ฒ์ ์๋ํ๋ ๋ฐฉ๋ฒ
function solution(bandage, health, attacks) {
var answer = 0;
let [prevAttackTime, prevDamage] = attacks[0];
attacks.shift();
dHealth = health;
attacks.forEach(attack=>{
let [attackTime, damage] = attack;
dHealth -= prevDamage;
console.log(dHealth);
if(attackTime - prevAttackTime >= bandage[0]){
dHealth += bandage[1] * (attackTime-prevAttackTime);
dHealth += Math.floor((attackTime - prevAttackTime)/bandage[0]) * bandage[2]
if(dHealth>health){
dHealth = health;
}
}
prevAttackTime = attackTime;
prevDamage = damage;
})
dHealth -= prevDamage;
return dHealth <= 0 ? -1:dHealth;
}
์ผ์ผ์ด ์ฒ์๋ถํฐ ๊ตฌํํ ํ์ ์์ด ๋ชฌ์คํฐ์ ๋ ๊ณต๊ฒฉ์ ์ด์ฉํ์ฌ ๊ณ์ฐํ ์ ์๊ฒ ๋ค๊ณ ํ๋จํจ.
๋ฌด์จ ํ ์คํธ์ผ์ด์ค 4๊ฐ๋ฅผ ์ ์ธํ๊ณ ๋ค ์ ๋ฉธ ใ
2์ฐจ์๋
function solution(bandage, health, attacks) {
var answer = 0;
const endTime = attacks[attacks.length-1][0];
const timeToDamages = new Array(endTime).fill(-1);
const [healTime, healAmount, adHealAmount] = bandage;
let dHealth = health;
attacks.forEach((attack)=>{
const [time,damage] = attack;
timeToDamages[time] = damage;
})
console.log(timeToDamages)
//์ฐ์์ฑ๊ณต
let c = 0;
for(let t=1; t<=endTime; t++){
if(timeToDamages[t]!==-1){
//codeA
dHealth = dHealth - timeToDamages[t];
c = 0;
}
else{
c+=1;
dHealth = dHealth + healAmount;
if(dHealth>health){
dHealth = health;
}
if(c===healTime){
dHealth = dHealth + adHealAmount;
}
}
}
return dHealth < 1? -1:dHealth;
}
์ ๋ง ๋ฌธ์ ๊ทธ๋๋ก~ ๊ตฌํ์ ํ์
๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์คํธ ์ผ์ด์ค 2๊ฐ๋ฅผ ํต๊ณผํ์ง ๋ชปํจ.
if(c===healTime){
dHealth = dHealth + adHealAmount;
c=0;
}
๊น๋นกํ๋ c์ด๊ธฐํ! ๊ทผ๋ฐ ์ด๋ฒ์ ํ ์คํธ ์ผ์ด์ค 6๋ฒ, 9๋ฒ์ด ํต๊ณผ๊ฐ ์๋๋ค.
๐ํด๊ฒฐ!
์ด๋ฐ ๊ณ ๋ง์ด ๋ถ์ด ใ ใ
if(dHealth<=0){
return -1;
}
codeA์์ ์๋ฅผ ์ถ๊ฐํด์ฃผ์๋ค.
ํ์คํ
์.. ๋ค๋ฅธ ๊ฑด ๋ชฐ๋ผ๋ ๋ชฌ์คํฐ ๊ณต๊ฒฉ ์ค์ ์ฒด๋ ฅ์ด ๋จ์ด์ง๋ ๊ฒ์ ๊ณ ๋ คํ๋ ๊ฒ์ ์์๋ค๋ ๊ฒ.. ์ถฉ๊ฒฉ์ด์๋ค. ๋น์ฐํ ๊ฑฐ์ง๋ง ๋ฌธ์ ์ ์ธ๊ธ์ ์ ๋์ด์์ด ๊ณ ๋ คํ ์๊ฐ์ ๋ชปํ๋ค ใ ใ
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค ๊ตฌํ/๋ฌธ์์ด] 1148 ๋จ์ด ๋ง๋ค๊ธฐ (0) | 2024.05.05 |
---|---|
[๋ฐฑ์ค ์ ๋ ฌ] ๊ฐ์์ค ๋ฐฐ์ (0) | 2024.04.22 |
[์ฝ๋ํธ๋ฆฌ] ๊ฒน์ณ์ง์ง ์๋ ๋ ์ง์ฌ๊ฐํ ํ์ด (2) | 2023.11.07 |
[์ฝ๋ํธ๋ฆฌ ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต] N๊ฐ ์ค์ M๊ฐ ๊ณ ๋ฅด๊ธฐ(Simple) / xor ๊ฒฐ๊ณผ ์ต๋ ๋ง๋ค๊ธฐ (1) | 2023.10.08 |
[์ฝ๋ํธ๋ฆฌ] ์์ด ๋ง๋ค๊ธฐ / ์๋ค์ ํฉ ์ต๋ํํ๊ธฐ (0) | 2023.09.26 |