[알고리즘 프로그래머스] 핸드폰 번호 가리기 (LEVEL 1)

(문제) 핸드폰 번호 가리기


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

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

입력설명

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

출력설명

전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 * 으로 가린 문자열을 리턴

테스트케이스

입력예제 출력예제
01033334444 *******4444
027778888 *****8888

해결방법

방법 1

문자열의 개수를 구하고, 개수 - 4 만큼 * 를 출력한 뒤 문자열의 뒤에 4자리를 출력한다.


방법 2 : 정규표현식 사용

그룹을 2개로 나눈다.

그룹 하나는 * 바꿀 것

다른 그룹은 냅둘 것

그래서 r = re.compile('(\d*)(\d{4})') 를 한다.

sub 함수를 이용하여 lambda를 응용하여 값을 바꾼다.

r.sub(lambda m: len(m.group(1)) * '*' + m.group(2), s)

코드 방법 1

s = input()

print('*' * (len(s) - 4) + s[-4:])

코드 방법 2

import re

s = input()

r = re.compile('(\d*)(\d{4})')
print(r.sub(lambda m: len(m.group(1)) * '*' + m.group(2), s))

댓글남기기