핸드폰 번호 가리기

박상진·2021년 11월 9일
0

프로그래머스

목록 보기
1/65
post-thumbnail

프로그래머스 연습문제중 핸드폰 번호 가리기를 풀어보았습니다.

문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건

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

입출력 예

phone_numberreturn
"01033334444""***4444"
"027778888""*8888"

처음 시도한 코드 입니다

def solution(phone_number):
	
    a = phone_number[-4:]
    b = phone_number.replace("0-9","*")[:-4]
    answer = b + a
    return answer

알아보니 "0-9"를 적용하기 위해선 정규표현식을 사용해야 합니다.
위의 코드로는 문자 그대로 0-9로 인식됩니다.
때문에 위의 함수의 결과값은 전체 핸드폰 번호로 출력됩니다.
solution(phone_number)
"01033334444","027778888"

정답으로 제출된 코드 입니다

def solution(phone_number):
    a = phone_number[-4:]
    b = len(phone_number[:-4])
    c = b*"*"
    answer = c + a
    return answer

b에서 뒤 4개의 문자를 뺀 나머지 숫자를 세어주고, 세어준 숫자에 *을 곱해주었습니다. 이후에 나머지 숫자(a)를 뒤에 더해주었습니다.

다른 사람의 풀이 입니다

def hide_numbers(s):
    return "*"*(len(s)-4) + s[-4:]

훨씬 간단하지만 논리는 같아보입니다. 공부할게 많은 느낌이듭니다.

profile
개발자가 되고싶당

0개의 댓글