<출처>
프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
https://school.programmers.co.kr/learn/courses/30/lessons/134239
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<방법> ArrayList에 변수 k값을 저장, 그래프를 높이가 1인 사다리꼴의 형태로 나누어 생각하여 계산
public static double[] Solution(int k, int[][] ranges) {
ArrayList<Integer> nums = new ArrayList<>();
nums.add(k);
while (k != 1) {
k = k%2 == 0? k/2 : k*3+1;
nums.add(k);
}
double[] answer = new double[ranges.length];
for (int i = 0; i < ranges.length; i++) {
int start = ranges[i][0];
int end = nums.size() - 1 + ranges[i][1];
if (start == end) {
answer[i] = 0.0;
continue;
}
if (start > end) {
answer[i] = -1.0;
continue;
}
float sum = nums.get(start) + nums.get(end);
start++;
while (start < end) {
sum += (nums.get(start) * 2);
start += 1;
}
answer[i] = sum / 2;
}
return answer;
}
'▶ 코테 준비 > 프로그래머스 문제풀이' 카테고리의 다른 글
[JAVA] 프로그래머스 - 콜라 문제 (0) | 2022.11.06 |
---|---|
[JAVA] 프로그래머스 - 옹알이(2) (0) | 2022.11.06 |
[JAVA] 프로그래머스 - 푸드 파이트 대회 (0) | 2022.11.05 |
[JAVA] 프로그래머스 - 햄버거 만들기 (0) | 2022.11.04 |