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

2023. 1. 12. 22:45·🐤 CodingTest/Java

 

 

 

🗣️ 메모

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

 

 

 

저작자표시 비영리 변경금지 (새창열림)
'🐤 CodingTest/Java' 카테고리의 다른 글
  • [프로그래머스/Java/❌⭕️] [PCCE 기출문제] 1번 / 문자 출력
  • [프로그래머스/Java/입문/⭕️] 세균 증식
  • [프로그래머스/Java/입문/❌⭕️] 순서쌍의 개수
  • [프로그래머스/Java/입문/⭕️] 자릿수 더하기
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[프로그래머스/Java/입문/⭕️] 개미 군단
상단으로

티스토리툴바