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
}
'Swift랑 친해지기 > programmers 풀기' 카테고리의 다른 글
[프로그래머스] 문자열 나누기 (Swift) (0) | 2022.12.20 |
---|---|
[프로그래머스] 신고 결과 받기 (Swift) (0) | 2022.12.19 |
[프로그래머스] 푸드 파이트 대회 (Swift) (0) | 2022.12.14 |
[프로그래머스] 콜라 문제 (Swift) (0) | 2022.12.13 |
[프로그래머스] 체육복 (Swift) (2) | 2022.12.12 |