728x90
https://school.programmers.co.kr/learn/courses/30/lessons/72410
문제 분석
- 사용자가 입력한 문자열을 주어진 단계에 맞춰 가공하는 문제
- 그냥 단계에 맞춰 구현만 잘 해주면 됨
정답코드
class Solution {
fun solution(new_id: String): String {
var answer: String = ""
//1단계
val low_id = new_id.toLowerCase()
//2단계
for(i in 0 until low_id.length){
var ch = low_id[i]
if(ch.isLetterOrDigit() || ch == '-' || ch == '_' || ch == '.'){
answer += ch
}
}
//3단계
while(answer.indexOf("..") != -1){
answer = answer.replace("..", ".")
}
//4단계
if(!answer.isEmpty() && answer[0] == '.'){
answer = answer.substring(1)
}
if(!answer.isEmpty() &&answer[answer.length -1] == '.'){
answer = answer.substring(0, answer.length -1)
}
//5단계
if(answer == "")
answer = "a"
//6단계
if(answer.length > 15){
answer = answer.substring(0, 15)
if(answer[0] == '.'){
answer = answer.substring(1)
}
if(answer[answer.length -1] == '.'){
answer = answer.substring(0, answer.length -1)
}
}
//7단계
if(answer.length <= 2){
while(answer.length < 3){
answer += answer[answer.length-1]
}
}
return answer
}
}
정규표현식과 코틀린의 내장함수를 활용하면 더 깔끔한 코드가 될 것같은데 아직 잘 다루지못해 보편적인 구현방법으로 풀었다..
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
프로그래머스 - 체육복(python) (0) | 2023.03.31 |
---|---|
프로그래머스 전화목록(python) (0) | 2023.03.31 |
프로그래머스 주식가격 (0) | 2023.03.02 |
프로그래머스 위장(lv2, python) (0) | 2023.02.28 |
프로그래머스 짝지어 제거하기(lv2, python) (0) | 2023.02.25 |