ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 신규 아이디 추천
    프로그래머스 2022. 9. 9. 20:16
    728x90
    class Solution {
        fun solution(new_id: String): String {
            var first : String = new_id.toLowerCase()
            var answer: String = ""
            for(i in 0 .. first.length - 1){
                if(first[i].toChar() in 'a' .. 'z' ) answer +=  first[i]
                if(first[i].toChar() in '0' .. '9' ) answer +=  first[i]
                if(first[i].toString() == "-" || first[i].toString() =="_" ||
                    first[i].toString() ==".") answer +=  first[i]
            } //1~2 단계 실행
    
            var second = answer
            var secondSize = answer.length
            answer = "" // 공백 초기화
            for(i in 0 .. second.length-2 ){
                if(second[i+1] == '.' && second[i] == '.') {
                    answer += ""
                } else answer += second[i]
            }
            answer +=  second[secondSize-1]
            //3 단계 완료
    
            for(i in 0 .. answer.length -1) {
                when(i){
                    0 -> if(answer[i].toChar() == '.') answer = answer.substring(1,answer.length)
                    answer.length -1 -> if(answer[i].toChar() == '.') answer = answer.substring(0,answer.length - 1)
                    else -> continue
                }
            }
            //4 단계 완료
    
            if(answer == "") answer += "a"
            //5 단계 완료
    
            if(answer.length >= 16){
                answer = answer.substring(0, 15)
                if(answer.last().toChar() == '.') answer = answer.substring(0, 14)
            }
            //6 단계 완료
    
            while(answer.length <= 2 ) {
                answer += answer.last().toString()
            }
            //7 단계 완료
            return answer
        }
    }

    저의 현재 실력으로 푼 문제 답안이며, 가장 좋은 코드는 아닐 수 있으며, 코틀린을 공부하면서 추가적으로 알게 된 개념이 있어 다시 풀 경우 추가적으로 코드를 작성 할 수 있도록 하겠습니다.

    '프로그래머스' 카테고리의 다른 글

    3진법 뒤집기  (0) 2022.09.09
    내적  (0) 2022.09.09
    음양 더하기  (0) 2022.09.09
    로또의 최고 순위와 최저 순위  (0) 2022.09.09
    약수의 개수와 덧셈  (0) 2022.09.09
Designed by Tistory.