diff --git a/programmers/우박수열 정적분/solution.java b/programmers/우박수열 정적분/solution.java new file mode 100644 index 0000000..38e04a5 --- /dev/null +++ b/programmers/우박수열 정적분/solution.java @@ -0,0 +1,33 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/134239 + +import java.util.ArrayList; +import java.util.stream.*; +class Solution { + private double cal(double[] ar, int[] ra){ + double ans = 0D; + if(ra[0]>ar.length+ra[1]-1){ + return -1; + } + for(int a = ra[0]; a < ar.length+ra[1]-1; a++) ans +=(ar[a+1]+ar[a])/2; + return ans; + } + public double[] solution(int y, int[][] ranges) { + double[] ans, answer = new double[ranges.length]; + int i = 0; + double k = y; + ArrayList test = new ArrayList(); + while(k>1){ + test.add(k); + if(k%2==0) k = k/2; + else k= 3*k+1; + i++; + } + test.add(k); + ans = test.stream().mapToDouble(x -> x).toArray(); + + for(int c = 0; c < ranges.length; c++){ + answer[c] = cal(ans,ranges[c]); + } + return answer; + } +} \ No newline at end of file