Algorithm/Javascript
[프로그래머스] 230708 코딩테스트 연습
보라해바라기
2023. 7. 8. 20:59
SMALL
1. 수열과 구간 쿼리 2
function solution(arr, queries) {
var answer = [];
var arr_range = []; // 범위에 해당하는 배열
var res = []; // k보다 큰 값의 배열
var temp = 0; // k보다 크면서 가장 작은 값
queries.forEach( ([s, e, k]) => {
// 범위에 해당하는 배열 자르기
arr_range = arr.slice(s, e+1);
// k보다 큰 값 찾아 res 배열에 넣기
arr_range.forEach ( i => {
if (i>k) {
res.push(i);
}
})
// res 배열 원소 개수에 따른 최소값 저장
if (res.length>=2) {
temp = res[0]; // ** 처음 값을 최소값으로 가정
for(var j = 0; j<res.length; j++) {
if (res[j] < temp) {
temp = res[j];
}
}
}
else if (res.length == 1) {
temp = parseInt(res);
}
else { // (res.length == 0)
temp = -1 ;
}
answer.push(temp);
res = []; // ** res 배열 초기화! > 다음 queries에서 res 새로 지정됨.
});
return answer;
}
728x90