Swift랑 친해지기/programmers 풀기
[프로그래머스] 과일 장수 (Swift)
데브킹덕
2022. 12. 18. 02:46
https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
변수설정
- score: score 배열 내림차순으로 정렬
- emptyArray : 0을 m개씩 가지고 있는 배열
- count : m개까지 사과를 넣으면 다시 0으로 초기화하기 위함
- result : 과일 장수가 얻을 수 있는 최대 이익
풀이
1. 내림차순으로 과일 점수가 담긴 score 배열을 정렬함
높을 점수의 사과들을 묶어 팔기 위함임
2. 과일의 총 개수(score.count) 에서 한개의 상자당 들어갈 사과의 수(m)을 나눈 몫에 m을 곱하면 총 판매할 수 있는 사과의 개수가 나옴
3. 0으로 초기화한 emptyArray에 차곡차곡 사과를 담고 한 박스에 사과를 다 담으면 (count == m) result에 최소레벨 사과 x m을 더해줌
import Foundation
func solution(_ k:Int, _ m:Int, _ score:[Int]) -> Int {
var score = score.sorted(by:>)
var emptyArray = Array(repeating:0, count:m)
var count = 0
var result = 0
for i in 0..<(score.count / m) * m{
emptyArray[count] = score[i]
count += 1
if count == m{
result = result + (emptyArray[m-1] * m)
count = 0
}
}
return result
}