Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- OS
- DFS
- Spring
- baekjoon
- 코틀린
- 자바
- Brute-force
- LEVEL2
- kotlin
- 자료구조
- DP
- 프로젝트
- backtracking
- BFS
- 모던자바
- algorithm
- 알고리즘
- 백트래킹
- 운영체제
- 백준
- programmers
- Java8
- 스프링
- java
- lambda
- back-end
- 그래프
- 네트워크
- 프로그래머스
- TDD
Archives
- Today
- Total
요깨비's LAB
[프로그래머스, 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)
answer = step6(answer)
answer = step7(answer)
return answer
}
fun step1(new_id: String): String {
return new_id.toLowerCase()
}
fun step2(new_id: String): String {
val sb = StringBuffer()
new_id.forEach {
if((it in 'a'..'z') || it in '0'..'9' || it == '-' || it == '_' || it == '.') {
sb.append(it)
}
}
return sb.toString()
}
fun step3(new_id: String): String {
var result = new_id
while (result.contains("..")) {
result = result.replace("..",".")
}
return result
}
fun step4(new_id: String): String {
var result = new_id
var indexOfFirst = result.indexOfFirst { it == '.' }
if(indexOfFirst != -1 && indexOfFirst == 0) {
result = result.replaceFirst(".", "")
}
var indexOfLast = result.indexOfLast { it == '.' }
if(indexOfLast != -1 && indexOfLast == result.length-1) {
result = result.substring(0, indexOfLast)
}
return result
}
fun step5(new_id: String): String {
var result = StringBuffer(new_id)
if(result.isEmpty()) {
result.append("a")
}
return result.toString()
}
fun step6(new_id: String): String {
var result = new_id
if(new_id.length >= 16) {
result = result.substring(0, 15)
}
var indexOfLast = result.indexOfLast { it == '.' }
if(indexOfLast != -1 && indexOfLast == result.length-1) {
result = new_id.substring(0, indexOfLast)
}
return result
}
fun step7(new_id: String): String {
var result = StringBuffer(new_id)
while(result.length <= 2) {
result = result.append(result.last())
}
return result.toString()
}
}
'알고리즘(Kotlin) > Simulation' 카테고리의 다른 글
[프로그래머스, Kotlin] 괄호 변환 (0) | 2021.03.31 |
---|---|
[프로그래머스, Kotlin] 멀쩡한 사각형 (0) | 2021.03.25 |
Comments