문제 53. 명예의 전당(1)
문제를 보고 반복문 없이 풀 수 있을 것 같은데...
생각을 하다가 오래 걸렸다...
하지만! 반복문 없이 문제를 풀어냈다.
먼저,
score.map((element, index)=>
{
if(index < k) return min = element < min ? element : min;
})
로 현재 index(일차)가 명예의 전당 커트라인 개수 보다 적으면,
return min = element < min ? element : min;
으로 가장 작은 값을 리턴해줬다.
그 밖의 경우(일차가 명예의 전당 컷트라인보다 클 경우)(여기에서 오래 걸림)
score.map(~~~)함수가 동작하기 이전
let temp = [] 라는 일차 별 점수를 내림차순 정렬할 배열을 새로 만들어줬다.
이후,
return score.map((element, index)=>
{
temp.push(element)
temp.sort((a, b)=> b - a)
if(index < k) return min = element < min ? element : min;
else return temp[k - 1]
})
으로 return temp[k - 1]로 temp에 내림차순 정렬된
커트라인 점수를 반환해주었다.
제출한 코드 :
function solution(k, score)
{
let temp = []
let min = score[0];
return score.map((element, index)=>
{
temp.push(element)
temp.sort((a, b)=> b - a)
if(index < k) return min = element < min ? element : min;
else return temp[k - 1]
})
}