-
[programmers/Swift] 과일 장수Archive/Questions 2022. 11. 14. 17:11728x90
programmers.co.kr - 코딩테스트연습 - Lv.1 - 연습문제 - 과일 장수
Constraints :
- 3 ≤ k ≤ 9
- 3 ≤ m ≤ 10
- 7 ≤ score의 길이 ≤ 1,000,000
- 1 ≤ score[i] ≤ k
- 이익이 발생하지 않는 경우에는 0을 return 해주세요.
// // Created by Yongwoo Marco on 2022/11/12. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ k:Int, _ m:Int, _ score:[Int]) -> Int { var result = 0, sorted = score.sorted(by: >) for K in stride(from: m - 1, to: sorted.count, by: m) { if sorted[K] <= k { result += sorted[K] * m } } return result } print(solution(3, 4, [1, 2, 3, 1, 2, 3, 1])) // 8 print(solution(4, 3, [4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2] )) // 33
How I tried this :
어차피 최대 점수보다 큰 점수의 사과는 버려질 예정이라고 생각해서점수가 높은 사과 순으로 정렬을 먼저 진행
정렬된 사과이기에 m번 째 사과가 항상 해당 박스의 점수가 되므로 `stride(from:to:by:)` 메서드를 이용해서
적용될 점수의 사과에 접근하는 형태로 진행 사과박스를 못채운다면 위 메서드에서 다음 주기 인덱스에 접근하지 않음.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 햄버거 만들기 (0) 2022.11.15 [programmers/Swift] 푸드 파이트 대회 (0) 2022.11.13 [programmers/Swift] 삼총사 (0) 2022.11.12 [programmers/Swift] 콜라 문제 (0) 2022.11.05 [programmers/Swift] 단어 변환 (0) 2022.08.12