정규 표현식으로 문제를 해결하면 쉽게 해결할 수 있게 됩니다
정규 표현식은 "[^a-z0-9-_.]" 으로 표현하게 된다면
a 부터 z 까지 소문자들을 포함하면서
0 부터 9 까지 숫자들을 포함하면서
- 하고 _ 그리고 . 을 포함한 것들을 제외한 것들을 "" 빈값으로 대체할 수 있게 됩니다.
import Foundation
func solution(_ new_id:String) -> String {
var id = new_id
id = id.lowercased()
id = id.replacingOccurrences(of: "[^a-z0-9-_.]", with: "", options: .regularExpression)
while id.contains("..") {
id = id.replacingOccurrences(of: "..", with: ".")
}
if id.first == "." { id.removeFirst() }
if id.last == "." { id.removeLast() }
if id.isEmpty { id = "a" }
id = String(id.prefix(15))
if id.last == "." { id.removeLast() }
while id.count < 3 {
id.append(id.last!)
}
return id
}
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 - 3진법 뒤집기 (0) | 2024.09.11 |
---|---|
프로그래머스 - 내적 (0) | 2024.09.11 |
프로그래머스 - 음양 더하기 (0) | 2024.09.11 |
프로그래머스 - 로또의 최고 순위와 최저 순위 (0) | 2024.09.11 |
프로그래머스 - 바탕화면 정리 (0) | 2024.09.10 |