From 74e8765b18733d973426148bb6ce67698611e5f0 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Sat, 31 Dec 2022 21:16:16 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202022.=2012.=2031.=20=EC=98=A4?= =?UTF-8?q?=ED=9B=84=209:16:18?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/우박수열 정적분/solution.java | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 programmers/우박수열 정적분/solution.java 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