(코딩테스트) 과일 장수
2024. 4. 11. 17:36ㆍ개발자 과정/Kotlin
https://n-pureun.tistory.com/54
이전에 풀었던 문제다.
다만 지난 번 풀이가 좀 날코딩 같기도 했고,
다시 문제를 읽어보니 정렬로 푸는게 쉬울거 같아 로직을 수정했다.
풀이의 선택과정
1. 전달받은 배열을 정렬한다.
2. 정렬된 배열을 가지고, 전달받은 크기만큼 구간을 나눈다.
3. 그 중 가장 작은 값을 구하고, 문제에 맞게 곱한다.
4. 나머지 부분은 버린다.
처음엔 Step 순회 하며 SliceArray후 가장 작은 값을 구하려 했는데,
이게 나머지 연산만으로 가상의 구간을 나눌 수 있을거 같았다.
정답풀이
class Solution {
fun solution(k: Int, m: Int, score: IntArray): Int {
var answer: Int = 0
score.sortDescending()
for(i in score.indices)
{
if((i+1)%m==0) answer+=score[i]*m
}
return answer
}
}
핵심로직
score.sortDescending()
= 정렬하지 않으면, 지난번 풀이와 같이 복잡한 로직을 거쳐야 한다.
여담
어째서..?
= 과거 풀이들을 보면, 회사를 다니던 때가 코딩을 제일 못한 때인거 같다.
입사 이전에도 자료구조도 조금 알고, 직접 구현도 하고, 난이도 있는 문제도 척척풀었던거 같은데,
밥먹고 코딩만 하던 재직당시의 퍼포먼스가 더 떨어져 보이는건 어째서일까...?
코테에 쓰이는 것들을 쓸일이 별로 없었어서 그런가?
'개발자 과정 > Kotlin' 카테고리의 다른 글
(코딩테스트) 덧칠하기 (코틀린에서 index skip) (0) | 2024.04.17 |
---|---|
(코딩테스트) 모의고사 (0) | 2024.04.16 |
(코딩테스트) 카드 뭉치 (Queue초기화) (0) | 2024.04.11 |
(코딩테스트) 2016년 (LocalDate) (0) | 2024.04.11 |
(코딩테스트) 명예의 전당(1) (우선순위 큐) (0) | 2024.04.11 |