💜 Key Point

sort, slice

💜 Today I Learned

[코드카타]

  • 과일 장수
    이 문제는 최대 이익을 내야 하기 때문에 우선 높은 순으로 팔아야 하기 때문에 score 부분을 정렬해주었다.
     score.sort((a, b) => b-a);
    한 상자의 m만큼의 사과가 들어가기 때문에 for문을 통해 score의 길이만큼 반복하되 i는 m만큼 증가하도록 하였다.
    상자의 들어간 사과의 등급을 알아야 하기 때문에 새 변수를 선언하여 배열을 만들었다.
     for (let i=0; i<score.length; i+=m) {
         let a = score.slice(i, i+m);
     }
    for문 안에 if문을 추가하여 모든 사과가 항상 한 상자 안에 들어가는 것은 아니기 때문에 한 상자의 들어간 사과의 개수가 m과 같을 때 answer에 한 상자의 들어간 최저 사과 점수와 사과의 개수를 곱한 값을 넣어준다.
    if(a.length === m) {
        answer += m * a[a.length-1];
    }
    a[a.length-1]; 인 이유는 score을 내림차순으로 정렬하였기 때문에 맨 뒤에 있는 값이 최저 점수이기 때문에 a의 길이에서 -1을 해주어야 한다.
    <전체 코드>

0개의 댓글