🎨 Scoop the others/오블완

[프로그래머스/Java/입문/⭕️] 개미 군단

천재강쥐 2024. 11. 17. 19:06

 

 

 

🗣️ 메모

if문 속 if문이 나오는 복잡한 로직이라도 주석을 기재하면서 차근차근 짜 보면 됨!

 

 

 


 

 

 

✏️ [개미 군단]

문제 설명

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


제한사항

  • hp는 자연수입니다.
  • 0 ≤ hp ≤ 1000

입출력 예
hpresult
23 5
24 6
999 201

입출력 예 설명

입출력 예 #1

  • hp가 23이므로, 장군개미 네마리와 병정개미 한마리로 사냥할 수 있습니다. 따라서 5를 return합니다.

입출력 예 #2

  • hp가 24이므로, 장군개미 네마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 6을 return합니다.

입출력 예 #3

  • hp가 999이므로, 장군개미 199 마리 병정개미 한마리 일개미 한마리로 사냥할 수 있습니다. 따라서 201을 return합니다.

 

 

 


🔥🎉 TRY #1 [실행 결과]

👉🏻 방법은 주석 참고

class Solution {
    public int solution(int hp) {
        int answer = 0;
        
        // 여치의 체력이 5 이상
        if(hp >= 5) {
            // hp가 5로 나누어떨어지지 않는다면 장군개미로만은 불가능함
            if(hp % 5 != 0) {
                answer = (int)Math.floor((double)hp / 5); // 장군개미가 필요한 수를 뽑음
                hp = hp % 5; // 남은 숫자를 hp로 바꾸면 5 미만이 될 것
                
                if(hp % 3 != 0) { // 병정개미로만 불가능함
                    answer += (int)Math.floor((double)hp / 3); // 병정개미가 필요한 수를 뽑음
                    hp = hp % 3; // 남은 숫자를 hp로 바꾸면 3 미만이 될 것
                    answer += hp; // 1, 2의 경우 일개미의 숫자와 동일함
                } else { // 병정개미로만 가능함
                    answer += hp / 3; // 병정개미의 수를 더해 줌
                }
            // hp가 5로 나누어떨어진다면 장군개미로만 가능함
            } else {
                answer = hp / 5;
            }
        
        // 여치의 체력이 3 이상
        } else if (hp >= 3) {
            if(hp % 3 != 0) { // hp가 3으로 나누어떨어지지 않는다면 병정개미로만은 불가능함
                answer += (int)Math.floor((double)hp / 3); // 병정개미가 필요한 수를 뽑음
                hp = hp % 3; // 남은 숫자를 hp로 바꾸면 3 미만이 될 것
                answer += hp; // 1, 2의 경우 일개미의 숫자와 동일함
            } else {
                answer += hp / 3;
            }
        // 여치의 체력이 3 미만이라면 일개미만 투입되므로 answer = hp
        } else {
            answer = hp;
        }
    
        return answer;
    }
}

 

 

 


출처: 프로그래머스 코딩 테스트 연습,https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr