csct3434
[level 2] 우박수열 정적분 - 134239 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.LinkedList;
import java.util.List;
class Solution {
public double[] solution(int k, int[][] ranges) {
double[] answer = new double[ranges.length];
List<Integer> sequences = calcSequences(k);
for (int i = 0; i < ranges.length; i++) {
answer[i] = getArea(sequences, ranges[i]);
}
return answer;
}
private List<Integer> calcSequences(int k) {
LinkedList<Integer> sequences = new LinkedList<>();
while (k != 1) {
sequences.add(k);
if (k % 2 == 0) {
k /= 2;
} else {
k = k * 3 + 1;
}
}
sequences.add(1);
return sequences;
}
private double getArea(List<Integer> sequences, int[] range) {
int n = sequences.size() - 1;
int xA = range[0];
int xB = n + range[1];
if (xA > xB) {
return -1;
}
double area = 0;
for (int x = xA; x + 1 <= xB; x++) {
area += (sequences.get(x) + sequences.get(x + 1)) * 0.5;
}
return area;
}
}
'프로그래머스' 카테고리의 다른 글
[level 2] 마법의 엘리베이터 - 148653 (0) | 2024.02.29 |
---|---|
[level 2] 숫자 카드 나누기 - 135807 (0) | 2024.02.29 |
[level 2] 할인 행사 - 131127 (0) | 2024.02.29 |
[level 2] 피로도 - 87946 (0) | 2024.02.29 |
[level 2] n^2 배열 자르기 - 87390 (0) | 2024.02.29 |