Algorithms/프로그래머스

[프로그래머스] '주사위의 개수' - Java

LEFT 2023. 4. 30. 16:55

<문제 제시>

<문제설명>
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 
상자의 가로, 세로, 높이가 저장되어있는 배열 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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr