-
개미군단 (Math.floor()몫구하기)Coding Test/프로그래머스 Lv.0 2023. 6. 16. 09:34
장군개미 공격력 5
병정개미 공격력 3
일개미 공격력1
Ex) 사냥감 hp 23 = (5*4) + (3*1) 장군개미4마리+병정개미1마리 => 5마리
Ex) 사냥감 hp 24 = (5*4) + (3*1) + (1*1) 장군개미 4마리 + 병정개미1마리 + 일개미 1마리 = > 6마리
로직.
1.(조건문1) 사냥감(hp)을 5로 나눈다.
2.(조건문1) 나머지가 없을 경우, 5의 갯수만큼이 답이다.
3.(조건문1) 나머지가 있을 경우, 몫으로 할당된 5의 갯수만큼을 변수선언한다.
4. (3)에서 남은 나머지를 3으로 나눈다.
5. (조건문2) 나머지가 없을 경우, 3의 갯수만큼 + (3)에서 선언한 5의 갯수만큼이 답이다.
6. (조건문2) 나머지가 있을 경우, 몫으로 할당된 3의 갯수만큼을 변수선언한다.
7. (조건문2) (6)에서 남은 나머지의 수 + (3)몫으로 할당된 5의 갯수 + (6)몫으로 할당된 3의 갯수가 답이다.나의 풀이
function solution (hp) { var answer = 0; if(hp % 5 === 0){ var answer = Math.floor(hp/5) || 5로 나눴을때 나머지없이 딱 떨어지면 그 몫이 답 return answer } else { var king = Math.floor(hp/5) ||king = 장군의 수 var hpRest = hp%5 ||hpRest = 장군의 수만큼 빠진 나머지 hp } if(hpRest % 3 === 0){ var kingTwo = Math.floor(hpRest/3) || kingTwo = 병정의 수 var answer = king + kingTwo || 3으로 나눴을때 딱 떨어지면 병정수+장군수가 답 return answer } else { var hpRestTwo = hpRest%3 || hpRestTwo (장군수+병정수)만큼 빠진 나머지 hp var answer = hpRestTwo + king + kingTwo || 일개미 = 1이므로 hpRestTwo = 일개미의수 return answer || 장군수+병정수+일개미수 } }
오답.... 3개중 하나 맞음
두번쨰
function solution (hp) { var answer = 0; if(hp % 5 === 0){ var answer = Math.floor(hp/5) return answer } else if (hp % 5 !== 0) { var king = Math.floor(hp/5) var hpRest = (hp - (king*5)) } if(hpRest % 3 === 0){ var kingTwo = Math.floor(hpRest/3) var answer = king + kingTwo return answer } else if (hpRest % 3 !== 0) { var hpRestTwo = (hpRest - ((king*5)+(kingTwo*3))); var answer = hpRestTwo + king + kingTwo return answer } }
역시오답. 3개중 하나맞고 나머진 null 나옴
정답
function solution (hp){ let a = Math.floor(hp/5) let b = Math.floor((hp - (a * 5)) / 3) let c = hp - (a * 5) - (b * 3) return a + b + c }
a는 hp를 5로 나눈 몫(장군개미수)
b는 hp에서 장군개미수*5만큼을 뺀것을 3으로 나눈 몫 (병정개미수)
c는 전체 hp에서 장군개미수*5와 병정개미수*3을 뺀 값 (일개미수)
a+b+c
'Coding Test > 프로그래머스 Lv.0' 카테고리의 다른 글
배열의 유사도 (filter, includes) (0) 2023.07.11 배열의 최댓값 만들기 (1) (0) 2023.07.11 구슬을 나누는 경우의 수 (미완료) (0) 2023.06.12 배열 두 배 만들기 (Map함수, For문, 곱하기 연산자) (0) 2023.06.10 분수의 덧셈 (분모 분자 연산) (0) 2023.06.10