728x90
코딩 테스트 풀이 체크리스트 |
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로
programmers.co.kr
import java.util.*;
class Solution {
public String solution(String new_id) {
String arr = "1234567890abcdefghijklmnopqrstuvwxyz._-";
String answer = new_id.toLowerCase(); //1단계
//2단계
String[] temp = answer.split("");
for (int i = 0; i < temp.length; i++) {
if (arr.indexOf(temp[i]) == -1) {
temp[i] = "";
}
}
answer = String.join("", temp);
//3단계
while (answer.indexOf("..") != -1) {
answer = answer.replace("..", ".");
}
//4단계
if (answer.indexOf(".") == 0) answer = answer.substring(1, answer.length());
if (answer.length() != 0 && answer.lastIndexOf(".") == answer.length()-1) answer = answer.substring(0, answer.length()-1);
//5단계
if (answer.length() == 0) {
answer = "a";
}
//6단계
answer = (answer.length() >= 16) ? answer.substring(0, 15) : answer;
if (answer.length() != 0 && answer.lastIndexOf(".") == answer.length()-1) answer = answer.substring(0, answer.length()-1);
//7단계
if (answer.length() <= 2) {
int l = answer.length();
temp = new String[3 - l];
Arrays.fill(temp, answer.substring(l-1, l));
answer += String.join("", temp);
}
return answer;
}
}
테스트 1 〉 | 통과 (0.24ms, 72.6MB) |
테스트 2 〉 | 통과 (1.31ms, 75.3MB) |
테스트 3 〉 | 통과 (1.33ms, 75.5MB) |
테스트 4 〉 | 통과 (0.20ms, 71.2MB) |
테스트 5 〉 | 통과 (0.28ms, 70.5MB) |
테스트 6 〉 | 통과 (0.19ms, 72.5MB) |
테스트 7 〉 | 통과 (0.19ms, 72MB) |
테스트 8 〉 | 통과 (0.32ms, 73.7MB) |
테스트 9 〉 | 통과 (1.78ms, 77.5MB) |
테스트 10 〉 | 통과 (0.16ms, 73.6MB) |
테스트 11 〉 | 통과 (0.21ms, 77.6MB) |
테스트 12 〉 | 통과 (0.34ms, 71.4MB) |
테스트 13 〉 | 통과 (1.51ms, 84MB) |
테스트 14 〉 | 통과 (0.22ms, 75.4MB) |
테스트 15 〉 | 통과 (0.29ms, 73.6MB) |
테스트 16 〉 | 통과 (0.61ms, 78.3MB) |
테스트 17 〉 | 통과 (1.57ms, 77.1MB) |
테스트 18 〉 | 통과 (2.89ms, 87.8MB) |
테스트 19 〉 | 통과 (2.75ms, 73MB) |
테스트 20 〉 | 통과 (2.81ms, 70MB) |
테스트 21 〉 | 통과 (3.40ms, 74.2MB) |
테스트 22 〉 | 통과 (3.95ms, 71.8MB) |
테스트 23 〉 | 통과 (3.92ms, 72.6MB) |
테스트 24 〉 | 통과 (2.62ms, 70.2MB) |
테스트 25 〉 | 통과 (2.84ms, 74.5MB) |
테스트 26 〉 | 통과 (3.41ms, 74.2MB) |
1단계부터 7단계까지 순서대로 코드를 짠 것 뿐이라서 설명이 없다...
더보기
이건 이전에 풀었을 때 작성했던 코드인데 이 때 코드도 나쁘지 않은 듯...
import java.util.*;
class Solution {
public String solution(String new_id) {
String answer = "";
String[] id = new_id.toLowerCase().split("");
ArrayList<String> data = new ArrayList<>();
for (int i = 0; i < id.length; i++){
char c = id[i].charAt(0);
//46 : "."을 의미
if (data.size() == 0 && c == '.'){
continue;
}
//46 : ".", 45 : "-", 95 : "_"
if (c != 46 && c != 45 && c != 95 && !((c >= 97 && c <= 122) || (c >= 48 && c <= 57))){
continue;
}
if (c == 46 && data.get(data.size() - 1).equals(".")){
continue;
}
if (data.size() > 14){
break;
}
data.add(id[i]);
}
if (data.size() > 0 && data.get(data.size() - 1).equals(".")){
data.remove(data.size() - 1);
}
if (data.size() == 0){
data.add("a");
}
if (data.size() < 3){
while (data.size() < 3){
data.add(data.get(data.size() - 1));
}
}
return String.join("", data);
}
}
테스트 1 〉 | 통과 (0.23ms, 52MB) |
테스트 2 〉 | 통과 (0.23ms, 54MB) |
테스트 3 〉 | 통과 (0.25ms, 52.3MB) |
테스트 4 〉 | 통과 (0.27ms, 53.7MB) |
테스트 5 〉 | 통과 (0.27ms, 52.1MB) |
테스트 6 〉 | 통과 (0.29ms, 52.7MB) |
테스트 7 〉 | 통과 (0.37ms, 53MB) |
테스트 8 〉 | 통과 (0.29ms, 51.9MB) |
테스트 9 〉 | 통과 (0.13ms, 75MB) |
테스트 10 〉 | 통과 (0.25ms, 54.5MB) |
테스트 11 〉 | 통과 (0.33ms, 52.6MB) |
테스트 12 〉 | 통과 (0.43ms, 52.5MB) |
테스트 13 〉 | 통과 (0.24ms, 52.3MB) |
테스트 14 〉 | 통과 (0.39ms, 52.8MB) |
테스트 15 〉 | 통과 (0.35ms, 53.7MB) |
테스트 16 〉 | 통과 (0.74ms, 53.1MB) |
테스트 17 〉 | 통과 (1.05ms, 52.3MB) |
테스트 18 〉 | 통과 (2.38ms, 52.3MB) |
테스트 19 〉 | 통과 (2.11ms, 52.1MB) |
테스트 20 〉 | 통과 (2.56ms, 52.8MB) |
테스트 21 〉 | 통과 (2.29ms, 51.9MB) |
테스트 22 〉 | 통과 (2.28ms, 51.8MB) |
테스트 23 〉 | 통과 (2.51ms, 52.4MB) |
테스트 24 〉 | 통과 (3.02ms, 52.6MB) |
테스트 25 〉 | 통과 (3.87ms, 53MB) |
테스트 26 〉 | 통과 (2.08ms, 53.8MB) |
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 - 오픈채팅방 (2단계) (0) | 2022.03.25 |
---|---|
[Java] 프로그래머스 - 문자열 압축 (2단계) (0) | 2022.03.24 |
[Java] 프로그래머스 - 로또의 최고 순위와 최저 순위 (1단계) (0) | 2022.03.22 |
[Java] 프로그래머스 - 신고 결과 받기 (1단계) (0) | 2022.03.21 |
[스킬업] 고양이 사진첩 애플리케이션 (0) | 2022.03.11 |