웹 프로그래밍

[프로그래머스(Programmers)] 핸드폰 번호 가리기 - JAVA 본문

프로그래머스/level1

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

B. C Choi 2021. 10. 13. 21:34

 

문제 설명

 

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.

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

 


 

제한 조건

 

s는 길이 4이상, 20이하인 문자열 입니다.

 


 

입출력 예

 

phone_number return
"01033334444" "*******4444"
"027778888" "*****888"

 


 

풀이

 

1)  substring과 replaceAll을 사용하여 해결

class Solution {
    public String solution(String phone_number) {
       String answer = phone_number.substring(0,phone_number.length()-4).replaceAll(".","*")
       +phone_number.substring(phone_number.length()-4);
        return answer;
    }
}

2) 반복문과 charAt을 사용하여 해결

 

class Solution {
    public String solution(String phone_number) {
       int a = phone_number.length();
        String answer = "";
		for (int i = 0; i < a; i++) {
			if(i < a-4) {
				answer += "*";
			} else {
				answer += phone_number.charAt(i);
			}
		}
        return answer;
    }
}

1번과 2번 성능을 비교해 보니 1번이 좋았습니다.

 

문제를 다 풀고 다른 분들 해결 방법을 보던중... 

class Solution {
    public String solution(String phone_number) {
		return phone_number.replaceAll(".(?=.{4})", "*");
 }
}

성능이 가장 좋았습니다. 몰랐던 정규 표현식을 배우는 좋은 시간이었네요.bb