저장을 습관화

프로그래머스 LV.0 개미 군단 본문

코딩 테스트/프로그래머스 - 자바스크립트

프로그래머스 LV.0 개미 군단

ctrs 2023. 9. 17. 00:52

프로그래머스 LV.0 개미 군단

https://school.programmers.co.kr/learn/courses/30/lessons/120837

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

개미 군단


2. 문제 설명

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


3. 제한 사항

- hp는 자연수입니다.

- 0 ≤ hp ≤ 1000


4. 예시

hp result
23 5
24 6
999 201


5. 기본 제공 코드

function solution(hp) {
    var answer = 0;
    return answer;
}


6. 제출한 내 답

const solution = (hp) => {
  let count = 0;

  if (hp >= 5) {
    count += ~~(hp / 5);
    hp = hp % 5;
  }
  if (hp >= 3) {
    count += ~~(hp / 3);
    hp = hp % 3;
  }
  if (hp >= 1) {
    count += hp;
  }

  return count;
};

 

6-2. VSC에 작성한 내용

const solution = (hp) => {
  // 장군 5, 병정 3, 일꾼 1
  let count = 0;

  if (hp >= 5) {
    count += ~~(hp / 5);
    hp = hp % 5;

    // console.log(hp);
    // console.log(count);
  }
  if (hp >= 3) {
    count += ~~(hp / 3);
    hp = hp % 3;

    // console.log(hp);
    // console.log(count);
  }
  if (hp >= 1) {
    count += hp;
    // console.log(hp);
    // console.log(count);
  }

  return count;
};

// 테스트
console.log(solution(23));
console.log(solution(24));
console.log(solution(999));


7. 특이사항

좀 간단하게 적고 싶었는데 생각보다 잘 안되더라


8. 다른 사람이 작성한 답

8-1.

function solution(hp) {
    return Math.floor(hp/5)+Math.floor((hp%5)/3)+(hp%5)%3;
}

 

8-2.

function solution(hp) {
    const 장군개미 = Math.floor(hp / 5);
    const 병정개미 = Math.floor((hp - (장군개미 * 5)) / 3);
    const 일개미 = hp - ((장군개미 * 5) + (병정개미 * 3));
    return 장군개미+병정개미+일개미;
}

 

8-3.

function solution(hp) {
    return parseInt(hp/5) + parseInt((hp%5)/3) + parseInt((hp%5)%3)
}

 

나 수학 진짜 못하는구나..