상세 컨텐츠

본문 제목

[Kotlin] 프로그래머스 신규 아이디 추천

카테고리 없음

by 독서와 여행 2021. 4. 13. 00:17

본문

class Solution {
    fun solution(new_id: String): String {
    var answer: String = new_id
    answer = answer.toLowerCase()
    var re = Regex("[^a-z0-9._-]")//파이썬이랑 비슷한듯 이거 잘 활용 해야함 소문자, 숫자, .-_ 가 아닌것 필터링
    answer =  re.replace(answer,"") 
    re = Regex("\\.{2,}") // {} <- 이거가 반복 횟수, \\ <- 이스케이프
    answer = re.replace(answer,".") // 이 이후는 단계 알아서 적용해야해서 함수로 사용하는게 좋겠다.
    answer = step4(answer)
    if (answer.length == 0) answer = answer.plus("a")   // 첫 문자열 지우기 length()가 아니라 length다
    if (answer.length >= 16){
        answer = answer.substring(0,15) //substring은 substring(start, end) -> start~end-1인듯
        answer = step5(answer)
    }
    while (answer.length < 3){
        answer += answer[answer.length - 1]
        if (answer.length > 3) answer = answer.substring(0,3)

    }
    return   answer 
    }
}

fun step4(new_id : String):String {  // 앞 뒤 dot 지우기 
    var answer: String = new_id
     while (answer[0] == '.'){
        if(answer.length == 1) {
            answer = ""
            return answer

        }
        answer = answer.substring(1,answer.length)
    }
    while(answer[answer.length - 1] == '.'){
        if(answer.length == 1){
            answer = ""
            return answer
        }
        answer = answer.substring(0,answer.length - 1)
    }
    return answer
}

fun step5(new_id : String) : String {   // 뒤 dot 지우기
    var answer : String = new_id
    while(answer[answer.length - 1] == '.'){
        if(answer.length == 1){
            answer = ""
            return answer
        }
        answer = answer.substring(0,answer.length - 1)
    }
    return answer
}

코틀린은 풀이가 잘 없다.

정규식을 활용한다고 애좀 썼다.

정규식 공부하기 위해서 아래 세사이트를 참고했다. 그래도 사용법을 대충 알게 되어서 다행이다.

stackoverflow.com/questions/67053091/how-to-replace-duplicated-string-using-ren-in-kotlin/67059980#67059980

 

how to replace duplicated string using re{n,} in Kotlin?

I want change "aaa" or "aa..." to "." using Regex(re{2,}) Below is my code var answer = "aaa" var re = Regex("re{2,}a") // Regex("are{...

stackoverflow.com

zetcode.com/kotlin/regularexpressions/#:~:text=In%20Kotlin%2C%20we%20build%20regular%20expressions%20with%20the%20Regex%20.&text=A%20pattern%20is%20a%20regular,is%20going%20to%20be%20evaluated.

 

Kotlin regular expressions - using regular expressions in Kotlin

Kotlin regular expressions last modified July 5, 2020 Kotlin regular expressions tutorial shows how to use regular expressions in Kotlin. Regular expressions are used for text searching and more advanced text manipulation. Regular expressions are built-in

zetcode.com

m.blog.daum.net/chutedeau/202

 

연습9 ( 정규 표현식 )

정규 표현식(Regular Expression) 은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용 (=Pattern Matching) 표현식 설명 ^ 문자열 시작 $ 문자열 종료 . 줄바꿈 제외한 임의의 한 문자를 의미. m 옵션은

blog.daum.net

아 풀이가 코틀린은 잘 없다 ㅜ

 

아래는 코틀린으로 푼 블로그가 있어서 올려본다.

 

아직 코드는 안봤는데 낼 아침에 봐야지

 

yoggaebi.tistory.com/59

 

[프로그래머스, Kotlin] 신규 아이디 추천

class Solution { fun solution(new_id: String): String { var answer: String = new_id answer = step1(answer) answer = step2(answer) answer = step3(answer) answer = step4(answer) answer = step5(answer..

yoggaebi.tistory.com

 

댓글 영역