Contents
정답 문제 설명
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력
hp
가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.제한사항
hp
는 자연수입니다.
- 0 ≤
hp
≤ 1000
입출력 예
hp | result |
23 | 5 |
24 | 6 |
999 | 201 |
입출력 예 설명
입출력 예 #1
hp
가 23이므로, 장군개미 네마리와 병정개미 한마리로 사냥할 수 있습니다. 따라서 5를 return합니다.
입출력 예 #2
hp
가 24이므로, 장군개미 네마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 6을 return합니다.
입출력 예 #3
hp
가 999이므로, 장군개미 199 마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 201을 return합니다.
기본적으로 주어진 코드 :
class Solution {
public int solution(int hp) {
int answer = 0;
return answer;
}
}
정답
class Solution {
public int solution(int hp) {
int answer = 0;
while (hp > 0) {
if (hp >= 5) {
hp -= 5;
answer++;
} else if (hp >= 3) {
hp -= 3;
answer++;
} else {
hp -= 1;
answer++;
}
}
return answer;
}
}
- 루프를 통한 반복 작업:
while (hp > 0) {
hp
가 0보다 클 때까지 반복합니다. hp
가 0이 되면 루프를 종료합니다.- 조건문을 통한 분기:
- 5 이상의 값일 때:
if (hp >= 5) {
hp -= 5;
answer++;
hp
가 5 이상이면 hp
에서 5를 빼고, answer
를 1 증가시킵니다. 이는 5를 한 번 빼는 것이 가장 큰 감소이기 때문입니다.else if (hp >= 3) {
hp -= 3;
answer++;
hp
가 3 이상이면 hp
에서 3을 빼고, answer
를 1 증가시킵니다. 이는 3을 한 번 빼는 것이 다음으로 큰 감소이기 때문입니다.else {
hp -= 1;
answer++;
}
hp
에서 1을 빼고, answer
를 1 증가시킵니다. 이는 최소한의 감소입니다.Share article