728x90
반응형
(1) 내 풀이
function solution(k, score) {
let tempArr = [];
let newArr = [];
//1. k일차까지는 최소값
for (let i = 0; i < k; i++) {
//(+)k가 score보다 길이가 길 경우
if (i === score.length) {
break;
}
tempArr.push(score[i]);
newArr.push(Math.min(...tempArr));
}
//2. k+1일부터는 추가된 숫자 + 배열[0] 제외=> 여기의 최솟값
for (let i = k; i < score.length; i++) {
tempArr.push(score[i]);
tempArr.sort((a, b) => a - b);
tempArr.shift(0);
newArr.push(Math.min(...tempArr));
}
return newArr;
}
1) k값을 기준으로 분기해서 생각함
2) k일차까지는 배열의 최소값을 구하기
=> 새로운 배열에 push해서 1일차~k일차까지는 넣기 (tempArr)
=> 각 일차마다 Math.min 값을 해서 정답 배열에 추가하기 (newArr)
3) k+1일차부터는 추가된 숫자 + 배열[0] 값 제외하기
=> tempArr에 데이터 추가하고, 오름차순 정렬하여, shift로 배열[0] 제거
=> 정답 배열에 최솟값 넣어주기
4) 중요포인트 ★
=> k가 score보다 길이가 긴 경우를 생각해야함
예를 들어,
k=10
score =[1,10,2,5,6,7,8] (length 7)
이때는 정답이 [1,1,1,1,1,1,1]이여야함
★예외처리를 안하면 k가 7 이후부터는 Nan값이 나옴
if (i === score.length) {
break;
}
끝.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 | javascript] 폰켓몬 (해시) (0) | 2024.04.11 |
---|---|
[프로그래머스 | javascript] 2016년 (1) | 2023.12.26 |
[프로그래머스 | javascript] 푸드 파이트 대회 (0) | 2023.12.21 |
[프로그래머스 | javascript] 두 개 뽑아서 더하기 (1) | 2023.12.18 |
[프로그래머스 | JavaScript] 문자열 내 마음대로 정렬하기 (0) | 2023.12.14 |