본문 바로가기
TIL/알고리즘

아주 쉬운 알고리즘 - 주사위의 개수

by saramnim 2023. 3. 29.
728x90

기초 알고리즘에 대해 알아보자!

Q. 주사위의 개수

문제 설명

머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.

제한 사항

  • box의 길이는 3입니다.
  • box[0] = 상자의 가로 길이
  • box[1] = 상자의 세로 길이
  • box[2] = 상자의 높이 길이
  • 1 ≤ box의 원소 ≤ 100
  • 1 ≤ n ≤ 50
  • n ≤ box의 원소
  • 주사위는 상자와 평행하게 넣습니다.

입출력 예

box n result
[1, 1, 1] 1 1
[10, 8, 6] 3 12

입출력 예 설명

  • 입출력 예 #1
    상자의 크기가 가로 1, 세로 1, 높이 1이므로 모서리의 길이가 1인 주사위는 1개 들어갈 수 있습니다.
  • 입출력 예 #2
    상자의 크기가 가로 10, 세로 8, 높이 6이므로 모서리의 길이가 3인 주사위는 12개 들어갈 수 있습니다.

solution.js

처음 푼 풀이

function solution(box, n) {
    return box[0]*box[1]*box[2]/n**3;
}

처음엔 단순히 부피/부피의 문제로 이해하고 위와 같이 문제를 풀었으나 테스트케이스 1번만 통과, 2번은 틀렸다.

function solution(box, n) {
    return ~~(box[0]/n)*~~(box[1]/n)*~~(box[2]/n);
}

이에 위처럼 각 모서리마다 n을 나눠주는 식으로 쪼갰더니 통과했다.

728x90
반응형

댓글

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."