728x90
⬛ 프로그래머스 | LV.2 우박수열 정적분 - 단순 구현 문풀
https://school.programmers.co.kr/learn/courses/30/lessons/134239
💚문제 접근 방식
문제를 다 이해하고 나면 그렇게 어려운 문제가 아닌데, 문제에서 주어진 ranges에 대한 내용이 이해가 안돼서 애를 먹었다.
[풀이]
1) a는 0에서 a만큼 떨어진 지점, b는 맨뒤에서 b만큼 떨어진 지점으로 보아야 한다.
2) 또한, 사다리꼴 공식을 활용해서, 해당 범위에 대한 누적 합을 구해야 한다.
3) a가 b와 같다면 0.0을
4) a > b 라면 -1.0을 담아준다.
💚 제출 코드
import java.util.*;
class Solution {
public List<Double> solution(int k, int[][] ranges) {
List<Integer> list = new ArrayList<>();
int tmp = k;
while(tmp != 1){
list.add(tmp);
if(tmp % 2 == 0) tmp /= 2;
else tmp = 3*tmp + 1;
}
list.add(1);//1 돼서 탈출하니까
//처리
List<Double> answer= new ArrayList<>();
for(int[] x : ranges){
int a = x[0];
int b = list.size() + x[1] -1;
if(a == b) {
answer.add(0.0);
continue;
}
if(a > b) {
answer.add(-1.0);
continue;
}
if(a < b) {
double dimens = 0;
//경계 누적합
for(int i =a; i<b; i++){
dimens += (list.get(i) + list.get(i+1)) / 2.0;
}
answer.add(dimens);
}
}
return answer;
}
}
💚회고
문제에 그림이 복잡해 보여도 예제 따라하면서 설명하는 바가 무엇인지를 파악하는 게 중요하다. 이 문제도 다 이해하고 나면 크게 어려운 문제는 아니었지만, 괜히 겁을 먹었다. 침착하게 읽어보고 흐름을 따라가자.
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 | LV.3 인사고과 - 단순 구현 문풀 (Java) (21) | 2024.02.25 |
---|---|
프로그래머스(카카오) | LV.2 양궁대회 - DFS, 완탐 문풀 (Java) (17) | 2024.02.25 |
프로그래머스 | LV.1 달리기 경주 - HashMap 단순 구현 문풀 (Java) (14) | 2024.02.25 |
프로그래머스(카카오 기출) | LV.2 주차 요금 계산 - 단순 구현 문풀 (Java) (52) | 2024.02.22 |
프로그래머스(카카오 기출) | LV.3 합승 택시 요금 - 플로이드 or 다익스트라 문풀 (Java) (64) | 2024.02.17 |