Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 팀워크최고
- TS
- 항해99
- 스파르타코딩클럽
- 챗GPT
- rn
- ReactNative
- 웹개발종합반
- NotionAI
- 필수강의
- 실전프로젝트
- ChatGPT
- TDD
- 리액트
- 맥린이
- typeScript
- 프로그래머스
- 사전준비
- 알고리즘기초주차
- D반8조
- REACT
- 프론트엔드
- Expo
- Programmers
- 알pdf #파일탐색기미리보기안될때
- 멍친구
- Ai
- 달리기반
- 코린이
- 7기
Archives
- Today
- Total
FrontEnd :-)
programmers 개미 군단 본문
개미 군단
🙋 (문제)
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.
제한사항
- hp는 자연수입니다.
- 0 ≤ hp ≤ 1000
입출력 예
hpresult
23 | 5 |
24 | 6 |
999 | 201 |
🅰️ (제출 답)
function solution(hp) {
let first = 0;
let two = 0;
let three = 0;
first = parseInt(hp/5);
if(first >= 0){
two = parseInt((hp-first*5)/3);
}
if(two >= 0){
three = parseInt(hp-(first*5+two*3));
}
return first + two + three;
}
||
V
function solution(hp) {
const first = parseInt(hp/5);
const two = parseInt((hp-first*5)/3);
const three = parseInt(hp-(first*5+two*3));
return first + two + three;
}
✅ (풀이 과정)
최소 개미 수를 구하는 것이므로, 가장 공격력이 좋은 개미부터 최대한으로 차출?하고 그 다음 그 다음 모으면 된다. 나누기에서 몫만 필요해서 parseInt를 썼다.
+ 처음에 if 조건 넣느라 코드가 길어졌는데 필요 없는 것 같다.
+ parseInt 와 Math.floor 는 양수에서는 차이가 없고, 음수에서 차이를 보인다. parseInt는 소수점을 버리고(음수에선 올림인 격), Math.floor는 내림이라.
🤼♀️ 다른 풀이 1
return Math.floor(hp/5)+Math.floor((hp%5)/3)+(hp%5)%3;
=> 나머지 생각이 잠깐 스쳤지.. 나머지 활용!!
Math.floor()는 버림.
Math.ceil() : 올림 Math.floor() : 버림 Math.round() : 반올림
🤼♀️ 다른 풀이 2
const 장군개미 = Math.floor(hp / 5);
const 병정개미 = Math.floor((hp - (장군개미 * 5)) / 3);
const 일개미 = hp - ((장군개미 * 5) + (병정개미 * 3));
return 장군개미+병정개미+일개미;
=> 변수명. 가독성이 좋다.
'JavaScript > Algorithm' 카테고리의 다른 글
1. Big O Notation(표기법) (0) | 2023.03.12 |
---|---|
programmers 최빈값 구하기 (0) | 2023.03.11 |
programmers 피자 나눠 먹기 (2) (0) | 2023.03.09 |
programmers 대문자와 소문자 (0) | 2023.03.09 |
programmers 분수의 덧셈 (0) | 2023.03.08 |
Comments