728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120837
본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다!
1. 문제 풀이
탐욕(Greedy) 알고리즘을 사용하여 풀이하는 문제 중 가장 베이직한 문제입니다. 사냥감의 체력(hp)에 딱 맞게 병력을 내보냄과 동시에 가장 적은 수로 구성해야 합니다.
장군개미, 병정개미, 일개미의 공격력이 각각 5, 3, 1이기 때문에 장군개미 > 병정개미 > 일개미 순으로 가능한 많은 병력을 내보내면 되는 문제입니다.
2. 정답 코드
function solution(hp) {
var answer = 0;
if (hp >= 5) {
answer += hp / 5 | 0;
hp = hp % 5;
}
if (hp >= 3) {
answer += hp / 3 | 0;
hp = hp % 3;
}
answer += hp;
return answer;
}
장군개미 > 병정개미 > 일개미, 각각의 단계로 넘어가기 전 최대한 많은 인력을 사용해야 하기 때문에 현재 사냥감의 hp를 각각 5, 3, 1로 나눈 몫의 합이 총 병력의 수가 됩니다.
또한, 최종적인 hp는 각각 5, 3, 1로 나눈 나머지와 같은 것을 이용하여 간단하게 2개의 if 문으로 풀이를 완료할 수 있습니다.
728x90
'알고리즘' 카테고리의 다른 글
[알고리즘] 코딩테스트 연습(연습 문제) - [JavaScript] 멀리 뛰기 (2) | 2024.06.05 |
---|---|
[알고리즘] 코딩테스트 연습(월간 코드 챌린지 시즌 1) - [JavaScript] 두 개 뽑아서 더하기 (0) | 2024.05.30 |
[알고리즘] 코딩 테스트 연습(월간 코드 챌린지 시즌 1) - [JavaScript] 이진 변환 반복하기 (0) | 2024.04.04 |
[알고리즘] 코딩테스트 연습 - [JavaScript] 최솟값 만들기 (0) | 2024.04.04 |
[알고리즘] 코딩테스트 연습 - [JavaScript] 달리기 경주 (0) | 2024.03.25 |