관리 메뉴

너와 나의 스토리

[Java] 2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천: 풀이 & 코드 본문

Algorithm/Programmers

[Java] 2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천: 풀이 & 코드

노는게제일좋아! 2022. 6. 2. 20:10
반응형

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

 

문제 풀이:

  • 그냥 시키는 대로 하면 끝..

 

소스 코드:

import java.util.Locale;

class Solution {
    public String solution(String new_id) {
        String answer = "";
        answer = step1(new_id);
        answer = step2(answer);
        answer = step3(answer);
        answer = step4(answer);
        answer = step5(answer);
        answer = step6(answer);
        answer = step7(answer);
        return answer;
    }

    public String step1(String id) {
        return id.toLowerCase(Locale.ROOT);
    }

    public String step2(String id) {
        String new_id = "";
        for (int i = 0; i < id.length(); i++) {
            if (isValid(id.charAt(i))) new_id += id.charAt(i);
        }
        return new_id;
    }

    private boolean isValid(char character) {
        if ('a' <= character && character <= 'z') return true;
        else if ('0' <= character && character <= '9') return true;
        else return character == '-' ||
                    character == '_' ||
                    character == '.';
    }

    public String step3(String id) {
        String new_id = "";
        int count = 0;
        for (int i = 0; i < id.length(); i++) {
            char cur = id.charAt(i);
            if (cur == '.') {
                if (count == 0) new_id += cur;
                count++;
            } else {
                new_id += cur;
                count = 0;
            }
        }
        return new_id;
    }

    public String step4(String id) {
        String new_id = id;
        int len = id.length();
        if (id.charAt(0) == '.') new_id = " " + new_id.substring(1, len);
        if (id.charAt(len-1) == '.') new_id = new_id.substring(0, len - 1) + " ";
        return new_id.replaceAll(" ", "");
    }

    public String step5(String id) {
        if (id.length() == 0) return "a";
        return id;
    }

    public String step6(String id) {
        String new_id = id;
        if (id.length() >= 16) new_id = id.substring(0, 15);
        return step4(new_id);
    }

    public String step7(String id) {
        String new_id = id;
        char lastChar = id.charAt(id.length() - 1);
        while (new_id.length() <= 2) {
            new_id += lastChar;
        }
        return new_id;
    }
}
반응형
Comments