개미 군단 _ JS

박서현·2023년 8월 4일
0
post-thumbnail

🍏개미 군단

🔻나의 풀이

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) 문제로 풀었음.

0개의 댓글