🔻나의 풀이
function solution(hp) {//필요한 체력
//1. 개미들 체력 변수 선언
let ant5 = 5;
let ant3 = 3;
let ant1 = 1;
let count = 0;
//2. 개미들이 나가고 남은 hp양
let result = 0;
//2. ant5 개미가 제일 많이 나갈때부터 한마리씩 줄여가며 확인
let maxAnt5 = Math.floor(hp / ant5); //4
for(let i = maxAnt5; i >= 0; i--) {
count = 0;
//3. ant5가 i마리 나갈 때 남은 hp양
count += i;
result = hp - (ant5 * i); //4 = 24 - (5 * 4)
//4. 남은 hp양을 ant3이 채워서 나간다
count += Math.floor(result / ant3);
result = result % ant3; // 0 = 3 % 3
//4. 남은 hp양을 ant1이 채워서 나간다
count += Math.floor(result / ant1);
result = result % ant1; // 0 = 3 % 3
if(result === 0) {
return count;
}
}
}
🔻다른 사람의 풀이
function solution(hp) {
return Math.floor(hp/5)+Math.floor((hp%5)/3)+(hp%5)%3;
}
hp가 1인 개미가 없다면 for문을 돌리지만 hp가 1인 개미가 있기 때문에 for문을 돌릴 필요가 없다.
백준의 [설탱배달](https://www.google.com/url?q=https://www.acmicpc.net/problem/2839&sa=D&source=editors&ust=1690622706852300&usg=AOvVaw3i5cA8EyUOXdHzTkoSQIfQ) 문제로 풀었음.