안녕하세요. 이번에는 프로그래머스 과일 장수 문제를 풀어보려고 합니다.
Problem
https://school.programmers.co.kr/learn/courses/30/lessons/135808
Solution
class Solution {
fun solution(k: Int, m: Int, score: IntArray): Int {
var answer: Int = 0
val boxNum = score.size / m
val sortedScore = score.sortedDescending()
for(i in 0 until boxNum) {
answer += sortedScore[(m * i) + m - 1] * m
}
return answer
}
}
이번 문제는 사과를 판매하여 최고 이익을 만드는 문제입니다. 여기서 최대 이익 공식이 (최저 사과 점수) * (한 상자에 담긴 사과 개수) * (상자의 개수)입니다. 그래서 저는 sortedDescending을 사용해서 일단 정렬을 해줬습니다. 그리고 사과의 한 박스에 담기는 값이 최대한 높은 값들을 넣도록 하여 문제를 접근해 보았습니다.
1. 다른 사람 코드
class Solution {
fun solution(k: Int, m: Int, score: IntArray): Int {
score.sortDescending()
var answer = 0
for (i in (m - 1)..score.lastIndex step m) {
answer += score[i]
}
return answer * m
}
}
저와 비슷한 방식으로 문제에 접근하였지만, step을 사용하면서 m칸씩 가도록 코드를 작성한 것을 확인할 수 있었습니다. for문과 step을 잘 활용한 코드 같습니다.
Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 행렬의 곱셈 풀이 Kotlin (0) | 2024.01.19 |
---|---|
[프로그래머스] 모의고사 풀이 Kotlin (0) | 2024.01.17 |
[프로그래머스] 2016년 Kotlin (0) | 2024.01.14 |
[프로그래머스] H-Index Kotlin (2) | 2024.01.13 |
[프로그래머스] n^2 배열 자르기 Kotlin (0) | 2024.01.10 |