문제
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;
}
}
'하루하루 > 프로그래머스 문제풀이' 카테고리의 다른 글
[Lv.0 - Java] 120850. 문자열 정렬하기 (1) (1) | 2023.12.09 |
---|---|
[Lv.0 - Java] 120851. 숨어있는 숫자의 덧셈 (1) (1) | 2023.12.07 |
[Lv.0 - Java] 120895. 인덱스 바꾸기 (0) | 2023.12.05 |
120899. 가장 큰 수 찾기 (2) | 2023.12.02 |
[Lv.0 - Java] 120892. 암호 해독 (0) | 2023.11.22 |