[Programmers] 개미군단

그래도 해야지·2023년 4월 12일
0

Programmers

목록 보기
8/40
post-thumbnail

문제 설명
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.

🤔 해설

너무 어렵게 생각했다..
if문을 써서 만약 hp를 5로 나누고 몫을 구한 뒤 나머지가 없으면 계산을 끝내고, 나머지가 있으면 3을 구하고.. 이런식으로 하니 너무 복잡해졌고, 몇 마리의 개미가 필요한지를 구해야하는데 그걸 구하기가 어려웠음

쉽게 하려면 각각의 몫을 구하면 됐음
hp에서 장군개미(5)를 나눈 몫
hp에서 병정개미(3)를 나눈 몫
마지막 일개미는 1이기 때문에 굳이 나눌 필요없이 hp에서 장군개미 몫 5과 병정개미 3을 빼주면 됨

✅ 답

function solution(hp) {
  const first = Math.floor(hp / 5)
  const second = Math.floor((hp - first * 5) / 3) 
  const third = hp - first * 5 - second * 3
  return first + second + third
}

0개의 댓글