마토의 세상

MATO WORLD

Algorithm 알고리즘

[프로그래머스 Lv1]핸드폰 번호 가리기(JAVA)

jy-agnes-lee 2021. 8. 26. 21:04

아ㄹ고리즈ㅁ

[내가 푼 방식]

1. 길이를 구해 substring으로 뒷 네자리 구하기

2. 나머지는 반복문을 통해 *를 해당 길이만큼 붙이기

class Solution {
    public String solution(String phone_number) {
        String answer = "";
        int pnum = phone_number.length();
        String lastnum = phone_number.substring(pnum-4,pnum);
        for(int i =0;i<pnum-4;i++){
            answer += "*";
        }
        answer = answer+lastnum;
        return answer;
    }
}

[참고하고 싶은 방식]

1. char[]로 변경하였다가 다시 String으로 변경하는 방식

char[] ch = phone_number.toCharArray();

for(int i = 0; i < ch.length - 4; i ++){

   ch[i] = '*';

}

return String.valueOf(ch);

2. 정규표현식 전방탐색

return phone_number.replaceAll(".(?=.{4})", "*");

. -> 임의의 문자 한 개 

(?=.) -> 뒷쪽에 임의의 문자 한 개를 제외하고 선택

{숫자} -> 숫자 만큼의 자릿수

.(?=.{4}) ==> 뒤쪽에서 임의의 문자 4개를 제외한 임의의 문자 한 개 선택