본문 바로가기

코딩테스트 연습(with java)/프로그래머스

프로그래머스 연습문제<핸드폰 번호 가리기>

문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부*으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요

 

 ex)

phone_number = "01033334444" > return "*******4444"

phone_number = "027778888" > return "*****8888"

 

<내가 작성한 코드>

class Solution {
    public String solution(String phone_number) {
        String answer = "";
        String star = "*";
        String last1 = str.substring(phone_number.length()-4);
        String last2 = str.substring(phone_number.length()-3);
        String last3 = str.subString(phone_number.length()-2);
        String last4 = str.subString(phone_number.length()-1);
        String multistar = star*(phone_number.length()-4);
        
        answer = multistar+last1+last2+last3+last4;
        
        return answer;
    }
}

concat구문을 작성해야하나 싶었는데, 까먹은 지식들을 다 복구하고 알고리즘 공부를 한다음에 정석적인 방법을 사용하기로 택했다. 그래서 그냥 원초적인 방식으로 문자열 인덱스 접근해서 나중에 다 더하는 식으로 해결해보았는데 너무 더럽다.  요즘 일이 너무 힘들어서 그런가 뇌가 잘 안돌아가나보다. 해결책을 생각해보고 코드를 수정하겠다.