240322-TIL
3월 22일
오늘은 과일 장수 문제로 돌아왔다
과일 장수

과일장수의 문제 설명이다
쉽게 말해 한상자의 m개씩 포장하고 m개씩 포장한 상자의 가격은 m * 상자에 들어있는 사과중 최저 등급의 사과의 가격이다.

솔루션의 초기 상태이다
일단 내가 가진 사과로 몇개의 상자를 만들어 낼수있는지 확인해야한다

score.Length는 내가 가지고 있는 사과의 개수이고 한상자에 들어가야할 사과의 개수는 m
score.Length를 m으로 나눈값이 내가 포장할 수 있는 사과 상자의 개수가 된다.

그리고 score를 정렬시켜주고 뒤집어주자 이렇게되면 사과 등급이 높은순서대로 score에 재정렬되게 된다.

이렇게 하면 score의 인덱스를 순서대로 돌면서 m개씩 담게되면 내가 만든 사과상자의 가격이 위의 이미지의
입출력 예#2 처럼 담기게 된다.

내가 만든 사과상자에 담긴 사과중 가장 낮은 등급을 가진 사과는 score의 m번째 사과가 될것이다
배열의 인덱스를 불러오기 위해 m에서 -1을 해서 미리 index 변수를 만들어 주자

그 다음 반복문을 돌아주는데 내가 만들 box만큼 반복문을 돌려줄것이다
반복문 안에서는 answer에 내가만든 상자 안의 사과중 최저등급의 가격 * 사과의 개수를 더해줄꺼고
index에는 반복문을 돌때마다 m만큼을 더해줘서 다음 상자에 담길 최소등급의 사과를 가져올수 있게 해주자

전체적인 코드는 이렇게 될것이다
확인해보자

정답!
오늘은 과일 장수 문제를 풀어보았다
확실히 반복문을 n번만큼 도는 형식의 알고리즘이라 n이 충분히 크다면
실행시간이 많이 걸리는 모습이다.
3월 22일 TIL은 여기서 마치도록 하겠다.