티스토리 뷰

코딩테스트 연습 - 개미 군단
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120837

문제 설명


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

제한사항


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

입출력 예


hpresult
235
246
999201

입출력 예 설명


입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

제출 코드


#include <string>
#include <vector>
using namespace std;

int solution(int hp) {
    int answer = 0;

    answer = hp / 5;
    hp -= 5 * answer;

    if(hp >= 3)
    {
        answer++;
        hp-=3;
    }

    for(int i = 0; i < 2; i++)
    {
        if(hp >=1)
        {
            answer++;
            hp-=1;
        }
        else break;
    }
    return answer;
}

문제를 보자마자 생각나는대로 풀었다. 제출하고나서 다른 사람들의 코드를 보니 바보라는 걸 깨달았다.

➕ 재풀이

#include <string>
#include <vector>
using namespace std;

int solution(int hp) {
    int answer = 0;
    
    answer = hp / 5;
    hp %= 5;
    answer += hp / 3;
    hp %= 3;
    answer += hp;
    
    return answer;
}

사실 위 코드와 그리 다른 점은 없다. 다만 어떻게 answer에 값을 넣어줄 지가 관건이다.


Uploaded by N2T

'😈 알고리즘 > 🖥️ 프로그래머스' 카테고리의 다른 글

🖥️ 세균 증식 🙋  (0) 2023.01.06
🖥️ 문자열 정렬하기 (1)  (0) 2023.01.05
🖥️ 모음 제거  (0) 2023.01.03
🖥️ 옷가게 할인 받기  (0) 2023.01.02
🖥️ 중앙값 구하기  (0) 2023.01.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
링크
Total
Today
Yesterday