프로그래머스 알고리즘 Level 1 코틀린 2021 KAKAO BLIND RECRUITMENT신규 아이디 추천
2023. 1. 25. 19:32ㆍ알고리즘/문제
https://school.programmers.co.kr/learn/courses/30/lessons/72410
풀이 - 성공
class Solution {
fun solution(new_id: String): String {
val new = new_id.lowercase()
.replace("[^a-z0-9_.-]".toRegex(),"")
.replace("[.]{2,}".toRegex(), ".")
.replace("^[.]|$[.]".toRegex(),"")
.let { it.ifEmpty { "a" } }
.let { if(it.length>15) it.slice(0..14) else it }
.replace("[.]$".toRegex(),"")
.let { s -> var str = s
if(s.length<3) { repeat(3-s.length) { str = str.plus(s.last()) } }
str
}
return new
}
}
평가
문제를 보고 반가웠다.
보자마자 순서별로 함수형으로 풀면 나오겠구나 생각했다.
보기에는 아주 깔끔하다
중요한건 정규표현식의 활용
블로그에 정규표현식 다루기 포스트를 올려야겠다 생각했다.
아직 함수형이 익숙하지가 않아서 좀 더 공부를 해야겠다.
'알고리즘 > 문제' 카테고리의 다른 글
프로그래머스 알고리즘 Level 1 체육복 (0) | 2023.01.26 |
---|---|
프로그래머스 알고리즘 Level 1 2019 카카오 개발자 겨울 인턴쉽 크레인 인형뽑기 게임 (0) | 2023.01.25 |
프로그래머스 알고리즘 Level 1 코틀린 2022 카카오 TECH INTENSHIP 성격 유형 검사하기 문제 (0) | 2023.01.25 |
프로그래머스 알고리즘 Level 1 햄버거 만들기 (0) | 2023.01.24 |
프로그래머스 Level 1 코틀린 2022 KAKAO BLIND RECRUITMENT 신고 결과 받기 (0) | 2023.01.24 |