알고리즘/문제

[프로그래머스 level 0] 주사위의 개수(Java)

머훈 2022. 11. 10. 22:00

🔸 주사위의 개수

[문제설명]

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

 

[제한사항]

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

// 내가 푼 풀이
class Solution {
    public int solution(int[] box, int n) {
        int answer = (box[0] / n) * (box[1] / n) * (box[2] / n);
        return answer;
    }
}

// 다른 사람 풀이
class Solution {
    public int solution(int[] box, int n) {
        int answer,w,h,d=0;
        w=box[0]/n;
        h=box[1]/n;
        d=box[2]/n;
        answer=w*h*d;

        return answer;
    }
}

 

내가 푼 풀이는 상자의 가로, 세로, 높이 길이를 각각 주사위 모서리의 길이 정수인 n으로 나눈 값으로 부피 수식인 가로 * 세로 * 높이 길이를 구한 다음 answer 값을 return 하여 Solution 함수를 완성함. 다른 사람 풀이는 조금 더 수학적 지식을 드러내어 각 가로(w), 세로(d), 높이(h)를 정의한 후 부피 수식인 가로 * 세로 * 높이를 계산하여 값을 최종 return 하여 Solution 함수를 완성함.