코딩테스트/프로그래머스

[프로그래머스]신규 아이디 추천 - Java

GAEBAL 2022. 7. 4. 16:33
728x90

문제

https://programmers.co.kr/learn/courses/30/lessons/72410

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

 

 

풀이

쉬운 문제임

그냥 문제에서 하라는 대로 하면 됨!

문자열 다루기에 익숙해지고 싶다면 좋은 문제일 것 같음!

 

subString(), toLowerCase(), replace(), valueOf(), contains() 등의 문자열 관련 메서드를 알아두자!

 

 

자세한건 주석으로!

 

 

코드

// 코딩 테스트 연습 - 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천
// https://programmers.co.kr/learn/courses/30/lessons/72410

package PROGRAMMERS.level1;

public class Num72410_신규아이디추천 {
    private static class Solution{
        private String solution(String new_id) {
            String answer = new_id;

            // 1
            answer = new_id.toLowerCase();

            // 2
            String id = "";
            for(int i = 0; i < answer.length(); i++) {
                char c = answer.charAt(i);

                if ((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '-' || c == '_' || c == '.') {
                    id+=String.valueOf(c);
                }
            }
            answer = id;

            // 3
            answer = answer.replace("..", ".");
            while (answer.contains("..")) {
                answer = answer.replace("..", ".");
            }

            // 4
            if (answer.length() > 0) {
                if (answer.charAt(0) == '.') {
                    answer = answer.substring(1, answer.length());
                }
            }
            if (answer.length() > 0) {
                if (answer.charAt(answer.length() - 1) == '.') {
                    answer = answer.substring(0, answer.length() - 1);
                }
            }

            // 5
            if (answer.equals("")) {
                answer = "a";
            }

            // 6
            if (answer.length() >= 16) {
                answer = answer.substring(0, 15);

                if (answer.charAt(answer.length() - 1) == '.') {
                    answer = answer.substring(0, answer.length() - 1);
                }
            }

            // 7
            String c = answer.charAt(answer.length() - 1) + "";
            if(answer.length() == 2) {
                answer = answer + c;
            } else if(answer.length() == 1) {
                answer = answer + c + c;
            }

            return answer;
        }
    }

    public static void main(String[] args) {

        Solution sol = new Solution();

        System.out.println(sol.solution("...!@BaT#*..y.abcdefghijklm"));
        System.out.println(sol.solution("z-+.^."));
        System.out.println(sol.solution("=.="));
        System.out.println(sol.solution("123_.def"));
        System.out.println(sol.solution("abcdefghijklmn.p"));
    }
}
728x90