-
[알고리즘] 프로그래머스 신규아이디 추천 Java(자바)코딩/알고리즘 2022. 1. 3. 18:00
- 문제
https://programmers.co.kr/learn/courses/30/lessons/72410#
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로
programmers.co.kr
- 코드 설명
문자열을 다루는 문제이며 정규식을 적절히 쓸 줄 아는 가를 판별하는 문제인거 같다.
사실 정규식을 잘 몰라 해당 문법을 검색해가며 풀었고 특히 3번째 규칙에서 애를 먹었다.
테스또 4번째 규칙에서 마지막 "." 제거를 완벽히 처리하지 못했을 때 3,4,5,15 번에서 에러가 발생했다.
<input>
".aBcdeFg."
<output>
"abcdefg"
위의 테스트 케이스를 추가하여 검증했다.
문제를 풀고 다른 풀이도 몇개 보았지만 대부분 다 비슷했다.
class Solution { public String solution(String new_id) { String answer = ""; //1 answer = new_id.toLowerCase(); //2 answer = answer.replaceAll("[^0-9a-z-_.]",""); //3 answer = answer.replaceAll("[.]{2,}","."); //4 if(answer.charAt(0) == '.') answer = answer.substring(1,answer.length()); if(answer.length() > 1 && answer.charAt(answer.length()-1) == '.') answer = answer.substring(0,answer.length()-1); //5 if(answer.isEmpty() == true) answer = new String("a"); //6 if(answer.length() >15){ answer = answer.substring(0,15); if(answer.charAt(answer.length()-1) == '.') answer = answer.substring(0,answer.length()-1); } //7 while(answer.length()<3){ answer = answer.concat(answer.substring(answer.length()-1,answer.length())); } return answer; } }
- 결과
'코딩 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 오픈채팅방 Java(자바) (0) 2022.01.05 [알고리즘] 프로그래머스 문자열 압축 Java(자바) (0) 2022.01.04 [알고리즘] 프로그래머스 점프와 순간이동 Java(자바) (0) 2022.01.02 [알고리즘] 프로그래머스 디스크 컨트롤러 Java(자바) (1) 2022.01.01 [알고리즘] 프로그래머스 다리를 지나는 트럭 Java(자바) (0) 2021.12.30