티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/72410?language=swift 

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

 

import Foundation

func solution(_ new_id:String) -> String {
    var id: String = new_id
    
    id = id.lowercased()
    
    var temp = ""
    for char in id {
        if char.isLetter || char.isNumber || char == "-" || char == "_" || char == "." {
            temp.append(char)
        }
    }
    id = temp
    
    while id.contains("..") {
        id = id.replacingOccurrences(of: "..", with: ".")
    }
    
    while id.hasPrefix(".") {
        id.removeFirst()
    }
    
    while id.hasSuffix(".") {
        id.removeLast()
    }
    
    if id.isEmpty {
        id = "a"
    }
    
    if id.count >= 16 {
        id = String(id.prefix(15))
        if id.hasSuffix(".") {
            id.removeLast()
        }
    }
    
    while id.count <= 2 {
        id.append(id.last!)
    }
    
    return id
}
댓글