본문 바로가기
하루하루/프로그래머스 문제풀이

[Lv.0 - Java] 120845. 주사위의 개수

by 키튼햄 2023. 12. 7.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120845

 

 

 

풀이

처음에는 가로세로높이를 모두 곱한 상자의 부피에서 주사위의 부피만큼을 나누면 되지 않을까 생각했지만 다시 생각해보니 부피로는 재단을 할 수 없다는 것을 깨달았다.

그래서 생각한 것이 가로, 세로, 높이를 각각 주사위 변의 길이만큼 나누워서 나온 몫 만큼을 마지막에 모두 곱해주는 것이었다. 부피로 측정을하면 주사위는 들어가지 않아도 남는 부피만큼 또 나눠지기 때문에 아예 변에서 주사위의 변이 들어갈 수 있는 만큼만 잰 후에 곱하면 총 주사위의 개수가 나올 수 있다고 생각했다.

 

따라서 반복문을 이용하여 각 인덱스의 길이를 n으로 나눈 몫만큼을 answer 변수에 곱하는 것으로 코드를 만들었다. 특히 주의해야할 부분은 answer 변수를 0이 아닌 1로 초기화를 해야 제대로 된 값을 얻을 수 있다는 것이다. 0으로 설정하면 무슨 값을 곱해도 0이 나오기 때문이다.

 

 

코드

class Solution {
    public int solution(int[] box, int n) {
        int answer = 1;
        int nok = 0;
        
        for(int i=0; i<box.length; i++){
            nok = box[i]/n;
            answer *= nok;
        }
        
        return answer;
    }
}