java 프로그래머스 [Level 1] _신규 아이디 추천
2021. 4. 30. 15:32ㆍ프로그래머스 알고리즘/코딩 테스트 문제
반응형
class Solution {
private static String id = "";
public String solution(String new_id) {
id = new_id;
ch01();
System.out.println("1단계 : " + id);
ch02();
System.out.println("2단계 : " + id);
ch03();
System.out.println("3단계 : " + id);
ch04();
System.out.println("4단계 : " + id);
ch05(new_id);
System.out.println("5단계 : " + id);
ch06();
System.out.println("6단계 : " + id);
ch07();
System.out.println("7단계 : " + id);
return id;
}
// 대문자 변환
private void ch01() {
id = id.toLowerCase();
}
// 특수 문자 제거
// -_.~!@#$%^&*()=+[{]}:?,<>/
private void ch02() {
id = id.replace("~", "");
id = id.replace("!", "");
id = id.replace("@", "");
id = id.replace("#", "");
id = id.replace("$", "");
id = id.replace("%", "");
id = id.replace("^", "");
id = id.replace("&", "");
id = id.replace("*", "");
id = id.replace("(", "");
id = id.replace(")", "");
id = id.replace("=", "");
id = id.replace("+", "");
id = id.replace("[", "");
id = id.replace("{", "");
id = id.replace("]", "");
id = id.replace("}", "");
id = id.replace(":", "");
id = id.replace("?", "");
id = id.replace(",", "");
id = id.replace("<", "");
id = id.replace(">", "");
id = id.replace("/", "");
}
// 마침표 연속 치환
private void ch03() {
while (id.contains("..")) {
id = id.replace("..", ".");
}
}
// 처음, 끝 부분에 .일경우 제거
private void ch04() {
if (id.startsWith(".")) {
id = id.substring(1, id.length());
}
if (id.endsWith(".")) {
id = id.substring(0, id.length() - 1);
}
}
// 빈 문자열 체크
private void ch05(String new_id) {
if (id.isEmpty()) {
id += "a";
}
}
// 16자, 끝. 확인
private void ch06() {
if (id.length() >= 16) {
id = id.substring(0, 15);
if (id.endsWith(".")) {
id = id.substring(0, id.length() - 1);
}
}
}
// 길이 2자 이하
private void ch07() {
String endCh = String.valueOf(id.charAt(id.length() - 1));
while (id.length() < 3) {
id += endCh;
}
}
}
출제 링크 : programmers.co.kr/learn/courses/30/lessons/72410
반응형