상세 컨텐츠

본문 제목

우박수열 정적분 (연습문제)

프로그래머스 코딩테스트 풀이

by 발발개발 2022. 11. 13. 17:52

본문

원본 : https://school.programmers.co.kr/learn/courses/30/lessons/134239

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

import java.util.ArrayList;
import java.util.List;

class Solution {
    public double[] solution(int k, int[][] ranges) {
        List<Double> list = new ArrayList<>();

        while (k != 1) {
            int preK = k;
            k = k % 2 == 0 ? k / 2 : 3 * k + 1;

            int minK = Math.min(preK, k);
            int maxK = Math.max(preK, k);

            list.add(minK + (maxK - minK) / 2.0);
        }

        double[] result = new double[ranges.length];

        for (int i = 0; i < result.length; i++) {
            int start = ranges[i][0];
            int end = list.size() + ranges[i][1];

            if (end < start) {
                result[i] = -1;
            } else {
                double sum = 0;

                for (int j = start; j < end; j++) {
                    sum += list.get(j);
                }

                result[i] = sum;
            }
        }

        return result;
    }
}

관련글 더보기

댓글 영역