[알고리즘 프로그래머스] 핸드폰 번호 가리기 (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))
댓글남기기