프로그래머스 Lv1 남은 문제들을 Swift로 풀어보면서 얻었던 IDEA들을 정리했다.
map, filter, reduce
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
let array = arr.sorted().filter{ $0 % divisor == 0 }
return array == [] ? [-1] : array
}
map: 클로저로 각 항목들을 반영한 결과물을 가진 새로운 배열을 반환합니다.
filter: 클로저로 각 항목들을 비교하여 일치하는 결과물을 가진 새로운 배열을 반환합니다.
reduce: 배열의 각 항목들을 재귀적으로 클로저를 적용시켜 하나의 값을 만듭니다.
array.map { $0 * 2 }
array.filter { $0 % 2 == 0 }
array.reduce(0) { $0 + $1 }
array.reduce( 0, + )
String 처리하는 방법
- Array로 바꿔서 처리
func solution(_ s:String) -> String {
if Array(s).count % 2 == 0 {
return String(Array(s)[(s.count/2)-1...(s.count/2)])
} else {
return String(Array(s)[s.count/2])
}
}
- String.index(_ , _ offset) 활용
sort시 기준 여러 개
func solution(_ strings:[String], _ n:Int) -> [String] {
return strings.sorted {
Array($0)[n] == Array($1)[n] ? $0 < $1 : Array($0)[n] < Array($1)[n]
}
}
String과 Character의 차이
Character를 Int로 바꾸고 싶다면?
String으로 변환한 뒤에 Int로 변환해야 함.
String은 Character의 Collection
String: A Unicode string value that is a collection of characters.
String 관련
prefix, suffix
zip
'Coding Test > 정리' 카테고리의 다른 글
[python] list pop VS pop first (0) | 2022.03.08 |
---|---|
[python] functools.cmp_to_key(func) (0) | 2022.02.22 |
[python] Dictionary, Counter (0) | 2022.02.21 |