티스토리 뷰
문제 설명
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
제한 조건
my_string은 소문자와 공백으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
내 답안
func solution(_ my_string:String) -> String {
let array = ["a", "e", "i", "o", "u"]
return my_string.filter { !array.contains(String($0)) }
}
접근 방법
- 필터를 써서 포함되지 않았을 경우에만 반환되도록 했다
다른 풀이
import Foundation
func solution(_ my_string:String) -> String {
return my_string.filter { !["a", "e", "i", "o", "u"].contains($0)}
}
새로운 배열 변수를 만들지 않고도 할 수 있는 방법
import Foundation
func solution(_ my_string:String) -> String {
return my_string.components(separatedBy: ["a", "e", "i", "o", "u"]).joined()
}
이 함수는 나눈다는 생각만 했었는데 결과적으로 따지면 나누려고 하는 구분자를 삭제하는 것과 같구나
import Foundation
func solution(_ my_string:String) -> String {
return my_string.replacingOccurrences(of: "a", with: "")
.replacingOccurrences(of: "e", with: "")
.replacingOccurrences(of: "i", with: "")
.replacingOccurrences(of: "o", with: "")
.replacingOccurrences(of: "u", with: "")
}
import Foundation
func solution(_ my_string:String) -> String {
return my_string.replacingOccurrences(of: "[aeiou]", with: "", options: .regularExpression)
}
같은 replacingOccurrences 메서드를 사용했는데 다른 방식으로 풀어낸 것이 신기했다
알게 된 것
'코딩테스트' 카테고리의 다른 글
Lv.0 swift 문자열 앞의 n글자 (1) | 2024.03.19 |
---|---|
Lv.0 swift 제곱수 판별하기 (0) | 2024.03.18 |
Lv.0 Swift 문자 반복 출력하기 (0) | 2024.03.18 |
Lv.0 swift 자릿수 더하기 (0) | 2024.03.18 |
Lv.0 Swift 점의 위치 구하기 (0) | 2024.03.18 |
최근에 올라온 글