<문제 제시>
<문제설명>
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다.
상자의 가로, 세로, 높이가 저장되어있는 배열 box와
주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때,
상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
<예시 입출력>
<문제 해결 과정>
도형의 넓이를 구하는 문제였는데,
직육면체 상자 안에 정육면체 모양 주사위를 가득 채우는 문제이므로,
각 box의 가로, 세로, 높이를 구해 넓이를 구하는 문제이다.
주사위 모서리의 길이가 주어지므로 box의 인덱스 별로 n으로 나누어 구하는 문제이다.
<전체코드>
public class numbers_dice {
public static int solution(int[] box, int n) {
// 각 몫들을 구해서 곱하면 직육면체에 채워지는 주사위의 개수를 알 수 있다.
return (box[0] / n) * (box[1] / n) * (box[2] / n);
}
public static void main(String[] args) {
int[] box = {10,8,6};
int n = 3;
System.out.println(solution(box, n));
}
}
가로, 세로, 넓이를 통해 직육면체의 넓이를 구하는 것은 쉽지만, 그 안에 채워지는 정육면체의 개수를 구하는 것이 어려웠다.
식을 만들어 풀어낼 수 있었다.
문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120845
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스] '영어가 싫어요' - Java (0) | 2023.05.01 |
---|---|
[프로그래머스] '팩토리얼' - Java (0) | 2023.05.01 |
[프로그래머스] '배열 회전시키기' - Java (0) | 2023.04.30 |
[프로그래머스] '공 던지기' - Java (1) | 2023.04.29 |
[프로그래머스] '구슬을 나누는 경우의 수' - Java (0) | 2023.04.29 |