inblog logo
|
stupefyee
    알고리즘문제풀기

    [JAVA 문제 풀이] 397. 우박수열 정적분

    프로그래머스 (134239)
    Stupefyee's avatar
    Stupefyee
    Jul 24, 2025
    [JAVA 문제 풀이] 397. 우박수열 정적분
    Contents
    내가 작성한 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/134239
    notion image
    notion image
     

    내가 작성한 코드

    import java.util.*; class Solution { public double[] solution(int k, int[][] ranges) { double[] answer = new double[ranges.length]; List<Integer> list = new ArrayList<>(); // 우박수열 // 우박수열 리스트 채우기 list.add(k); while (k != 1) { if (k % 2 == 0) { k /= 2; list.add(k); } else { k = k * 3 + 1; list.add(k); } } // 각 구간별 면적 구하기 int n = list.size(); double[] areaSum = new double[n]; // 누적합 for (int i = 0; i < n - 1; i++) { double area = (list.get(i) + list.get(i + 1)) / 2.0; areaSum[i + 1] = areaSum[i] + area; } // ranges의 구간 면적 계산 for (int i = 0; i < ranges.length; i++) { int a = ranges[i][0]; int b = ranges[i][1]; int end = n - 1 + b; // x좌표: 0 ~ n-1 if (a > end) { answer[i] = -1.0; } else { answer[i] = areaSum[end] - areaSum[a]; } } return answer; } }
    Share article
    Contents
    내가 작성한 코드

    stupefyee

    RSS·Powered by Inblog