[프로그래머스]핸드폰 번호 가리기 –

“전화번호 숨기기”

문제 설명

Programmers Mobile은 개인 정보 보호를 위해 인보이스를 보낼 때 고객 전화번호의 일부를 마스킹합니다.


phone_number 문자열로 전화번호가 주어지면 전화번호 뒷 4자리를 제외한 모든 자리가 *로 덮힌 문자열을 반환하는 함수인 솔루션을 완성하십시오.


I/O 예시


-- 디스플레이광고 반응형 -->


자바 코드

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

다른 솔루션

class Solution {
    public String solution(String phone_number) {
        // 문자열의 길이에서 뒤에서 4자리를 뺀 길이만큼 *로 채운 문자열을 만듭니다.

String stars = "*".repeat(phone_number.length() - 4); // 전화번호의 뒤 4자리를 가져옵니다.

String lastFourDigits = phone_number.substring(phone_number.length() - 4); // *로 가린 문자열과 뒤 4자리를 합쳐서 반환합니다.

return stars + lastFourDigits; } }

문자열 이스케이프의 문제는 주어진 문자열의 일부를 ‘*’로 덮어 새 문자열을 생성하는 문제입니다.

예를 들어 지정된 문자열이 “01012345678”인 경우 “********5678″과 같이 마지막 4자리 “5678”을 제외한 모든 숫자 부분을 “*”로 덮어서 새 문자열을 생성해야 합니다.

이를 해결하려면 먼저 문자열의 길이를 찾아야 합니다.

다음 문자열에서 마지막 4자리를 뺀 길이만큼 ‘*’로 구성된 문자열을 생성합니다.

다음으로 원래 문자열에서 마지막 4자리를 추출해야 합니다.

이를 위해 하위 문자열 방법을 사용할 수 있습니다.

Substring 방식은 문자열의 일부를 추출하는 방식입니다.

인덱스를 지정하여 해당 인덱스에서 문자열을 추출할 수 있습니다.

그래서 원래 문자열의 길이에서 4를 빼고 색인부터 끝까지 추출하면 마지막 4자리를 추출할 수 있습니다.

마지막으로 ‘*’와 마지막 4자리 숫자로 구성된 문자열을 반환합니다.

이 경우 문자열 연결 연산자 “+”를 사용하여 문자열을 연결할 수 있습니다.

위와 같은 방법으로 문자열을 이스케이프 처리할 수 있습니다.

파이썬 코드

def solution(phone_number):
    
     return  '*'*(len(phone_number)-4) +phone_number(-4:)

입력 전화번호 길이에서 4를 뺀 길이와 같은 “*” 문자열을 생성합니다.

치아를 위해

곱셈 연산자를 이용하여 전화번호 길이에서 4를 뺀 만큼 문자열 “*”을 반복한 후,

반환할 문자열의 시작 부분에 이것을 할당합니다.

그런 다음 전화번호의 마지막 4자리를 추출합니다.

이를 위해 전화번호 끝의 문자열 색인을 사용합니다.

4번째 인덱스까지 추출합니다.

이 추출된 문자열은 반환될 문자열의 끝에 매핑됩니다.

마지막으로 문자열 연결 연산자 “+”를 사용하여 처음에 “*”로 구성된 문자열과 끝에 추출된 전화번호의 마지막 4자리를 결합하여 새로운 문자열을 생성하여 반환합니다.

예를 들어 “01012345678”이라는 전화번호가 주어졌을 때 먼저 전화번호 길이에서 4를 빼면 결과는 7이 됩니다.

따라서 문자열 ”을 반복한 결과인 “******”가 됩니다.

7번, 반환할 문자열의 dem 할당된 시작이 됩니다.

그리고 문자열 index를 이용하여 마지막 index에서 4번째 index까지 전화번호를 추출한 결과인 “5678”을 추출하여 반환할 string의 끝에 할당한다.

이 두 문자열을 문자열 연결 연산자 “+”로 결합하면 결과는 “********5678″입니다.