반응형
개미 군단 (JAVA)
< 문제 >
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.
입출력 예 #1
- hp가 23이므로, 장군개미 네마리와 병정개미 한마리로 사냥할 수 있습니다. 따라서 5를 return합니다.
입출력 예 #2
- hp가 24이므로, 장군개미 네마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 6을 return합니다.
입출력 예 #3
- hp가 999이므로, 장군개미 199 마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 201을 return합니다.
< 풀이 >
- 생각 정리
1. 우선 hp가 5로 나눠지는지 체크 > 3으로 나눠지는지 체크 > 1로 나눠지는지 체크
2. 입출력 예시를 보면
23 = 5 * 4 + 3 * 1 => 5
24 = 5 * 4 + 3 * 1 + 1 * 1 => 6
999 = 5 * 199 + 3 * 1 + 1 * 1 => 201 이렇게 되는 것 확인 가능
- 순서도
대충 순서도 그려보면서 진행해보려고 했다. 엄청 간단한 문제인데 내가 복잡하게 풀어낸 것은 아닌가 생각이 들기도 한다.
일단 풀어보고 다음날에 더 간단하거나 좋은 방식으로 수정하는 방향으로 공부 방법을 바꾸었다.
- 코드
class Solution {
public int solution(int hp) {
int answer = 0;
if(hp%5 == 0) {
answer = hp/5;
return answer;
}
else{
int a = hp/5; //장군개미
answer += a;
int rest = hp%5;
if(rest % 3 == 0){
answer = answer + (rest/3); //병정개미
return answer;
}
else{
int b = rest / 3;
rest = rest % 3; //일병개미
answer = a + b + rest;
return answer;
}
}
}
}
( 근데 다른 사람들 코드는 왜이렇게 짧은거지...? )
반응형
'알고리즘 > 프로그래머스:LV00' 카테고리의 다른 글
[LV00] 가위 바위 보 (0) | 2023.05.08 |
---|---|
[LV00] 모스부호 (1) | 2023.04.27 |
[LV00] 배열 자르기 (0) | 2023.04.24 |
[LV00] 짝수의 합 (0) | 2023.04.24 |
[LV00] 양꼬치 (0) | 2023.04.18 |