2021 KAKAO BLIND RECRUITMENT신규 아이디 추천 - JAVA
2025. 2. 25. 12:17ㆍ백준 및 프로그래머스/프로그래머스 LV 1
문제 설명

1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다.
2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다.
6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다.
만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
7단계 new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.
*핵심 로직*


*이번 문제는 단순 구현 문제인 것 같습니다. 실제로 저기에 나와있는 순서대로 무난하게 잘 구현한다면 정답을 쉽게 가져올 수 있습니다.
class Solution {
public String solution(String new_id) {
//1
String answer = new_id.toLowerCase();
// 2
String answer2 ="";
for(int i = 0; i<answer.length(); i++){
char word = answer.charAt(i);
if(word>='a' && word<='z'){
answer2+=word;
}else if(word>='0' && word<='9'){
answer2+=word;
}else if(word =='-' || word == '_' || word =='.'){
answer2+=word;
}
}
//3
String answer3 ="";
int idx = 0 ;
while (answer2.contains("..")){
answer2 = answer2.replace("..",".");
}
//4
if(answer2.length() > 0){
if(answer2.charAt(0) == '.'){
answer2 = answer2.substring(1,answer2.length());
}
}
if(answer2.length() > 0){
if(answer2.charAt(answer2.length()-1) == '.'){
answer2 = answer2.substring(0,answer2.length()-1);
}
}
//5
if(answer2.length() == 0){
answer2+="a";
}
//6
if(answer2.length() > 15){
answer2 = answer2.substring(0,15);
if(answer2.charAt(14) == '.'){
answer2 = answer2.substring(0,14);
}
}
//7
if(answer2.length()<3){
while (answer2.length()<3){
answer2+=answer2.charAt(answer2.length()-1);
}
}
return answer2;
}
}
*3단계 구현과정에서 실수가 있지만 contains활용으로 해결할 수 있었습니다.
'백준 및 프로그래머스 > 프로그래머스 LV 1' 카테고리의 다른 글
| 2025 프로그래머스 코드챌린지 1차 예선 - 유연근무제 -JAVA (1) | 2025.02.27 |
|---|---|
| 2023 KAKAO BLIND RECRUITMENT - 개인정보 수집 유효기간 - JAVA (0) | 2025.02.26 |
| 2020 카카오 인턴십 - 키패드 누르기 - JAVA (1) | 2025.02.24 |
| 2022 KAKAO TECH INTERNSHIP-성격 유형 검사하기- JAVA (0) | 2025.02.23 |
| 크레인 인형뽑기 게임 - JAVA (0) | 2025.02.21 |