[프로그래머스] 과일 장수 / JavaScript / Level 1

KimYoungWoong·2023년 3월 6일
0

Programmers

목록 보기
57/60
post-thumbnail

🚩문제 주소


📄 풀이

슬라이딩 윈도우

  1. score 배열을 내림차순으로 정렬합니다.

  2. leftright를 각각 0left + m으로 할당합니다.

  3. score 배열을 left부터 right전 까지 자른 다음, 그 중 가장 작은 값에 * m을 해주고 정답 변수에 더합니다.

  4. leftright로 재할당하고, rightleft + m으로 재할당합니다.

  5. rightscore 배열의 길이를 넘는다면 반복을 종료하고 정답을 반환합니다.



👨‍💻 코드

function solution(k, m, score) {
  let answer = 0;
  let left = 0;
  let right = left + m;
  score = score.sort((a, b) => b - a);

  while (right <= score.length) {
    answer += Math.min(...score.slice(left, right)) * m;
    left = right;
    right = left + m;
  }

  return answer;
}

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글