κ³ μ°¨ν¨μ?
νλ μ΄μμ ν¨μ(ν΄λ‘μ )λ₯Ό μΈμ λ‘ λ°κ±°λ, ν¨μ(ν΄λ‘μ )λ₯Ό λ°ν νλ ν¨μλ‘
λ°λ³΅λ¬Έμ μ¬μ©νμ¬ κ΅¬νμ ν μ μμ§λ§ μμλ₯Ό μ¬μ©νλ©΄ λμ΄μ λ©λͺ¨λ¦¬ μμμΈ‘μμ λ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ€.
λν, λ°λ³΅λ¬ΈμΌλ‘ ꡬννκ² λλ©΄ κ°λ μ±μ΄ λ¨μ΄μ§κ³ 볡μ‘ν΄μ§κΈ° λλ¬Έμ, κ°λ μ±μ μ¬λ¦¬κ³ νΈλ¦¬μ±μ λμ΄κΈ° μν΄μ μ¬μ©.
κ·Έ μ€, λ°°μ΄ λ€λ£°λ κ°μ₯ μ€μν μΈ κ°μ§ map, filter, reduceμ λν΄ μμ보μ
π₯ map
: κΈ°μ‘΄ λ°μ΄ν° λ³ννμ¬ μλ‘μ΄ μ»¨ν μ΄λλ₯Ό λ§λ€ λ μ¬μ©
컬λ μ νμ μ μν(forλ¬Έ μ¬μ©)ν νμ μμ΄ κ°λ¨νκ² κ΅¬ν κ°λ₯!
// Declaration
func map<U>(transform: (T) -> U) -> Array<U>
[κ°λ¨ μ¬μ©μμ ] λ°°μ΄ μμ λ°μ΄ν° νλ³ννκΈ°
var string = ["1","2","3","4"]
string.map { Int($0)! } // [1,2,3,4] κ° μμλ₯Ό μ λΆ Intλ‘ λ§΅ν
[λ¬Έμ ] - λ°°μ΄μλ₯΄κΈ°
μ μ λ°°μ΄ numbersμ μ μ num1, num2κ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, numbersμ num1λ² μ§Έ μΈλ±μ€λΆν° num2λ²μ§Έ μΈλ±μ€κΉμ§ μλ₯Έ μ μ λ°°μ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄λ³΄μΈμ.
[forλ¬Έ μ¬μ©]
func solution(_ numbers:[Int], _ num1:Int, _ num2:Int) -> [Int] {
var newArr: [Int] = []
for i in (num1...num2){
newArr.append(numbers[i])
}
return newArr
}
[map λ©μλ μ¬μ©]
func solution(_ numbers:[Int], _ num1:Int, _ num2:Int) -> [Int] {
return (num1...num2).map{numbers[$0]}
}
ν΄λ‘μ μΆμ½ λ¬Έλ²μ μ¬μ©ν΄μ ν¨~μ¬ κ°κ²°νκ² μ½λ ꡬνμ΄ κ°λ₯
π₯ filter
: κΈ°μ‘΄ κ°λ€ μ€ μ‘°κ±΄μ λ§μ‘±νλ κ°μ μΆμΆνμ¬ μλ‘μ΄ μ»¨ν μ΄λλ‘ λ°ν, μμκ° λ°νλ λ°°μ΄μ ν¬ν¨λμ΄μΌ νλμ§ μ¬λΆλ₯Ό Bool κ°μΌλ‘ λ°ννλ ν΄λ‘μ
// Declaration
func filter(includeElement: (T) -> Bool) -> Array<T>
[κ°λ¨ μ¬μ©μμ ]
var array = [1,2,3,4]
array.filter { $0 % 2 == 0 } // [2,4] 쑰건μ λ§λ μλ§ λ½μλ
[λ¬Έμ ] - νΉμ λ¬Έμ μ κ±°νκΈ°
λ¬Έμμ΄ my_stringκ³Ό λ¬Έμ letterμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§λλ€. my_stringμμ letterλ₯Ό μ κ±°ν λ¬Έμμ΄μ returnνλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
[forλ¬Έ μ¬μ©]
func solution(_ my_string:String, _ letter:String) -> String {
var my_array = Array(my_string)
var new_array: [Character] = []
for char in my_array{
if char != Character(letter){
new_array.append(char)
}
}
return String(new_array)
}
[filter μ¬μ©]
func solution(_ my_string:String, _ letter:String) -> String {
return my_string.filter{String($0) != letter}
}
π₯ reduce
: κΈ°μ‘΄ 컨ν μ΄λμμ λ΄λΆμ κ°λ€μ κ²°ν©νμ¬ μλ‘μ΄ κ°μ λ§λ λ€.
λ°°μ΄μ κ° νλͺ©λ€μ μ¬κ·μ μΌλ‘ ν΄λ‘μ λ₯Ό μ μ©μμΌ νλμ κ°μ λ§λ¬.
func reduce<U>(initial: U, combine: (U, T) -> U) -> U
[κ°λ¨ μ¬μ©μμ ]
var array = [1,2,3,4]
array.reduce(0, +) // μ«μ ν©μ΄ λνλ¨. λ¬Έμμ΄ ν©μΉκΈ°λ κ°λ₯
[λ¬Έμ ] - λ°°μ΄ μμλ€μ ν© κ΅¬νκΈ°
[forλ¬Έ μ¬μ©]
let numberArray = [1,2,3,4,5,6,7,8,9,10]
var sum = 0
for number in numberArray {
sum += number
}
print(sum)
[filter μ¬μ©]
let array = [5,6,7,8]
array.reduce(0, +)
//λ€λ₯Έ μ°μ°λ κ°λ₯
array.reduce(0, -)
// (1) * (5*6*7*8)
array.reduce(1, *)
// (16800) / (5 /6 /7 /8) = 10
array.reduce(16800, /))
'π iOS > Swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[iOS]μ΅μ λ² ν¨ν΄ (1) | 2024.11.12 |
---|---|
[Swift] μ€μννΈ λ°μ΄ν° νμ (Swift data type) - 2. 컬λ μ νμ (λ°°μ΄(Array), λμ λ리(Dictionary), μ§ν©(Set)) (1) | 2023.06.06 |
[Swift] μ΅μ λ(Optional) ? μ΅μ λ λ°μΈλ©νκΈ° + String λΉκ°, μ΅μ λ κ΅¬λΆ (0) | 2023.04.05 |
[Swift] ν¨μ(Function) - κ³ κΈ (0) | 2022.03.12 |
[Swift] ν¨μ(Function) - κΈ°λ³Έ (0) | 2022.03.05 |