// 21KAKAO 신규 아이디 추천
import Foundation
func solution(_ new_id:String) -> String {
let availList = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s",
"t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0","-","_","."]
var id = new_id.lowercased().map{String($0)}
var result = [String]()
for i in 0..<id.count {
if availList.contains(id[i]) {
result.append(id[i])
}
}
var index = 0
while true {
if index == result.count-1 {
break
}
if result.count >= 2 {
if result[index] == "." && result[index+1] == "." {
result.remove(at:index)
continue
}
} else {
break
}
index += 1
}
while true {
if result.first == "." {
result.removeFirst()
continue
} else if result.last == "." {
result.removeLast()
continue
}
if result.count == 0 {
result.append("a")
continue
}
if result.count > 15 {
result.removeLast(result.count-15)
if result.last == "" {
result.removeLast()
}
continue
}
if result.count < 3 {
result.append(result.last!)
continue
}
break
}
return result.joined()
}
// print(solution("...!@BaT#*..y.abcdefghijklm"))
//print(solution("z-+.^."))
//print(solution("=.="))
//print(solution("123_.def"))
//print(solution("abcdefghijklmn.p"))
.filter 함수를 생각하지 못해서 그냥 배열 만들어버렸음..
그 외의 부분은 딱히 잘못되었다고 생각되는 부분은 없어보임
'알고리즘문풀 with SWIFT > Programmers' 카테고리의 다른 글
swift ) 프로그래머스 - 22카카오블채 - 신고 결과 받기 (0) | 2022.06.23 |
---|---|
swift ) 프로그래머스 - 로또의 최고 순위와 최저 순위 (0) | 2022.06.23 |
swift ) 프로그래머스 21카카오 인턴 - 숫자 문자열과 영단어 (0) | 2022.06.22 |
swift ) 프로그래머스 - 20카카오인턴 - 키패드 누르기 (0) | 2022.06.22 |
swift ) 프로그래머스 - 2019카카오인턴 크레인 인형뽑기 게임 (0) | 2022.06.22 |