[프로그래머스] 명예의 전당 (1)

최유나·2024년 8월 8일
0

프로그래머스

목록 보기
46/53

✨ 명예의 전당 (1)

나의 풀이

function solution(k, score) {
  let answer = [],
      award = []; // 점수를 기록할 배열
    
  // score 전체를 탐색하면서 
  for (const s of score) {
    // award에 score을 push하고 오름차순으로 정렬
    award.push(s);
    award.sort((a, b) => a - b);
    // award의 길이가 k보다 커지면 제일 작은 원소인 맨 앞의 원소를 shift로 제거
    if (award.length > k) award.shift();
    // 제일 첫번째 원소를 넣는다
    answer.push(award[0]);
  }
  return answer;
}

사용한 메서드
Array.shift() : 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환, 길이 변화시킴

(출처 : Array.prototype.shift())

다른사람의 풀이

function solution(food) {
    let res = '';
    for (let i = 1; i < food.length; i++) {
        res += String(i).repeat(Math.floor(food[i]/2));
    }

    return res + '0' + [...res].reverse().join('');
}

function solution(food) {        
    const [water, ...half] = food.reduce((a, c, i)=> {
        a[i] = Math.trunc(c / 2); 
        return a;
     }, [])  

    food = half.map((num, i) => Array.from({length: num}, _ => i + 1));

    return food.flat().concat(0, ...food.reverse()).join('');
}


(출처 : )

0개의 댓글

관련 채용 정보