알고리즘/프로그래머스
신규 아이디 추천
베리영young
2024. 12. 13. 17:36
한 달 전 쯤 풀었던 거 같은데 이제서야 올리는 코드
어려운 건 아닌데, 이런 저런 조건이 있어서 귀찮은 문제
import java.util.*;
class Solution {
//3이상 15이하 길이, 소문자 숫자 - _ . 단, .은 양끝x 연속x
public String solution(String new_id) {
//1
new_id = new_id.toLowerCase();
//2
for(int i=new_id.length()-1; i>=0; i--) {
char c = new_id.charAt(i);
if(c-'0'>=0 && c-'0'<=9) continue;
if(c-'a'>=0 && c-'a'<26) continue; //
if(c=='-' || c=='_' || c=='.') continue;
String f = new_id.substring(0, i);
String s = new_id.substring(i+1);
new_id = f+s;
}
//3
for(int i=new_id.length()-1; i>=1; i--) {
boolean c = new_id.charAt(i)=='.' ? true : false;
if(!c) continue;
if(new_id.charAt(i-1)=='.') {
String f = new_id.substring(0, i);
String s = new_id.substring(i+1);
new_id = f+s;
}
}
//4
if(new_id.charAt(0)=='.')
new_id = new_id.substring(1);
if(new_id.length()-1>=0 && new_id.charAt(new_id.length()-1)=='.')
new_id = new_id.substring(0, new_id.length()-1);
//5
if(new_id.length()==0)
new_id = "a";
//6
if(new_id.length() > 15)
new_id = new_id.substring(0, 15);
if(new_id.length()-1>=0 && new_id.charAt(new_id.length()-1)=='.')
new_id = new_id.substring(0, new_id.length()-1);
//7
if(new_id.length() <= 2) {
char c = new_id.charAt(new_id.length()-1);
while(new_id.length() <3) {
new_id += c;
}
}
return new_id;
}
}