[알고리즘문제풀기] 주사위의 개수

silver's avatar
Dec 18, 2024
[알고리즘문제풀기] 주사위의 개수

문제

내가 작성한 오답

: 주사위를 상자에 배치할 때 상자와 주사위의 배치 방식에 따라 실제로 들어갈 수 있는 주사위의 개수가 달라지는데 상자와 평행하게 넣는 조건을 제대로 고려하지 않았다.
class Solution { public int solution(int[] box, int n) { int answer = 0; int volume = 1; for(int a : box){ volume *= a; } answer = volume/(n*n*n); return answer; } }

내가 작성한 정답

List

class Solution { public int solution(int[] box, int n) { int x = box[0]/n; int y = box[1]/n; int z = box[2]/n; return x*y*z; } }

StreamAPI

import java.util.Arrays; class Solution { public int solution(int[] box, int n) { return Arrays.stream(box) .map(co->co/n) .reduce(1, (a,b)->a*b); } }
 
💡

StreamAPI에서 reduce

두 개의 매개변수를 사용 Optional<T> reduce(BinaryOperator<T> accumulator) accumulator: 두 개의 요소를 받아서 하나의 요소로 결합하는 함수 이 형태는 결과가 Optional로 반환되며, 스트림이 비어 있을 경우 빈 Optional을 반환
세 개의 매개변수를 사용 T reduce(T identity, BinaryOperator<T> accumulator) identity: 초기값으로 사용되는 요소 accumulator: 두 개의 요소를 받아서 하나의 요소로 결합하는 함수 이 형태는 스트림이 비어 있을 경우에도 초기값을 반환
 
Share article

silver