[Swift] νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ μμ μ λΉ (1)
νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ
λͺ μμ μ λΉ (1)
λ¬Έμ μ€λͺ
"λͺ μμ μ λΉ"μ΄λΌλ TV νλ‘κ·Έλ¨μμλ λ§€μΌ 1λͺ μ κ°μκ° λ Έλλ₯Ό λΆλ₯΄κ³ , μμ²μλ€μ λ¬Έμ ν¬νμλ‘ κ°μμκ² μ μλ₯Ό λΆμ¬ν©λλ€. λ§€μΌ μΆμ°ν κ°μμ μ μκ° μ§κΈκΉμ§ μΆμ° κ°μλ€μ μ μ μ€ μμ kλ²μ§Έ μ΄λ΄μ΄λ©΄ ν΄λΉ κ°μμ μ μλ₯Ό λͺ μμ μ λΉμ΄λΌλ λͺ©λ‘μ μ¬λ € κΈ°λ ν©λλ€. μ¦ νλ‘κ·Έλ¨ μμ μ΄ν μ΄κΈ°μ kμΌκΉμ§λ λͺ¨λ μΆμ° κ°μμ μ μκ° λͺ μμ μ λΉμ μ€λ₯΄κ² λ©λλ€. kμΌ λ€μλΆν°λ μΆμ° κ°μμ μ μκ° κΈ°μ‘΄μ λͺ μμ μ λΉ λͺ©λ‘μ kλ²μ§Έ μμμ κ°μ μ μλ³΄λ€ λ λμΌλ©΄, μΆμ° κ°μμ μ μκ° λͺ μμ μ λΉμ μ€λ₯΄κ² λκ³ κΈ°μ‘΄μ kλ²μ§Έ μμμ μ μλ λͺ μμ μ λΉμμ λ΄λ €μ€κ² λ©λλ€.
μ΄ νλ‘κ·Έλ¨μμλ λ§€μΌ "λͺ μμ μ λΉ"μ μ΅νμ μ μλ₯Ό λ°νν©λλ€. μλ₯Ό λ€μ΄, k = 3μ΄κ³ , 7μΌ λμ μ§νλ κ°μμ μ μκ° [10, 100, 20, 150, 1, 100, 200]μ΄λΌλ©΄, λͺ μμ μ λΉμμ λ°νλ μ μλ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ [10, 10, 10, 20, 20, 100, 100]μ λλ€.
λͺ μμ μ λΉ λͺ©λ‘μ μ μμ κ°μ k, 1μΌλΆν° λ§μ§λ§ λ κΉμ§ μΆμ°ν κ°μλ€μ μ μμΈ scoreκ° μ£Όμ΄μ‘μ λ, λ§€μΌ λ°νλ λͺ μμ μ λΉμ μ΅νμ μ μλ₯Ό return νλ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- 3 ≤ k ≤ 100
- 7 ≤ scoreμ κΈΈμ΄ ≤ 1,000
- 0 ≤ score[i] ≤ 2,000
μ μΆλ ₯ μ
k | score | result |
3 | [10, 100, 20, 150, 1, 100, 200] | [10, 10, 10, 20, 20, 100, 100] |
4 | [0, 300, 40, 300, 20, 70, 150, 50, 500, 1000] | [0, 0, 0, 0, 20, 40, 70, 70, 150, 300] |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- λ¬Έμ μ μμμ κ°μ΅λλ€.
μ μΆλ ₯ μ #2
- μλμ κ°μ΄, [0, 0, 0, 0, 20, 40, 70, 70, 150, 300]μ return ν©λλ€.
μ μΆ
import Foundation
func solution(_ k:Int, _ score:[Int]) -> [Int] {
var arr = [Int]()
var re = [Int]()
for s in score{
arr.append(s)
arr = arr.sorted(by: >)
if arr.count < k{
re.append(arr.last!)
}else{
re.append(arr[k-1])
}
}
return re
}
μ μλ₯Ό μ μ₯ν Intν λ°°μ΄ arrμ κ²°κ³Όλ₯Ό μ μ₯ν Intν λ°°μ΄ reλ₯Ό μ μΈνλ€.
score λ°°μ΄μ λͺ¨λ μμλ€μ νμνλ€.
arrμ μμλλ‘ score λ°°μ΄μ μμλ₯Ό μΆκ°νκ³ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ€.
arrμ ν¬κΈ°κ° kλ³΄λ€ μλ€λ©΄ arrμ λ§μ§λ§ μμλ₯Ό re λ°°μ΄μ μΆκ°νκ³ , μλλΌλ©΄ arr[k-1]λ₯Ό reμ μΆκ°νλ€.