본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 45 - 개미 군단)

728x90
# 문제 

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



# 답안

// 1. 입력: hp -> 자연수 1,2,3 같은거
// 2. 출력: 개미 몇마리인지

// 장군개미 5 hp / 병정개미 3 hp / 일개미 1 hp
// 23이면, 장군개미4마리x5 + 병정1마리x3  = 총 5마리 return
// 23마리를 5로 나눈 몫(4) + 남은 3마리를 3으로 나눈 몫(1)
// 몫과 나머지를 이용해야할 것 같다.

function solution(hp) {
    const army = [5, 3, 1];  // 순회할 요소(개미 각각의 hp)를 배열로 만든다.
    let count = 0;  // 개미의 수를 셀 것이므로 count를 선언

    for (let i = 0; i < army.length; i++) {
        count += Math.floor(hp / army[i]);  // 하나씩 순회하면서 나온 몫이 개미의 수(count)에 더해짐 
        hp %= army[i]; // hp를 나머지로 계속 업데이트 
    }
    return count;
}
728x90