CodingTest/Programmers
[Programmers] 신규 아이디 추천
창브로
2025. 5. 14. 19:14
[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/72410
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[풀이 과정]
그냥 문제 그대로 구현하면 된다.
[코드]
class Solution {
public String solution(String new_id) {
String answer = "";
// 1단계
new_id = new_id.toLowerCase();
char[] cArr = new_id.toCharArray();
// 2단계
for(int i = 0; i < cArr.length; i++) {
char c = cArr[i];
if((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') ||
c == '-' || c == '_' || c == '.') {
answer += c;
}
}
// 3단계
while(answer.contains("..")) {
answer = answer.replace("..", ".");
}
// 4단계
if(answer.startsWith(".")) {
answer = answer.substring(1);
}
if(answer.endsWith(".")) {
answer = answer.substring(0, answer.length() - 1);
}
// 5단계
if(answer.equals("")) {
answer = "a";
}
// 6단계
if(answer.length() >= 16) {
answer = answer.substring(0,15);
}
while(answer.substring(answer.length()-1).equals(".")) {
answer = answer.substring(0, answer.length()-1);
}
// 7단계
while(answer.length() <= 2) {
String s = answer.substring(answer.length()-1);
answer += s;
}
return answer;
}
}
[회고]
구현 과정에서 자바 문자열에 대한 문법을 더욱더 정확하게 알 수 있었습니다.
질문과 피드백은 언제나 환영입니다.
감사합니다.