갱스터하우스

[Python] Lv1.핸드폰 번호 가리기 본문

코테 문제/프로그래머스

[Python] Lv1.핸드폰 번호 가리기

승갱 2022. 4. 8. 00:29

https://programmers.co.kr/learn/courses/30/lessons/12948

 

 

문제 설명

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

 

제한 조건

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

 

나의 접근 방법 및 풀이

문제를 보자마자 이거 슬라이싱이다 했다.

근데 뭔가 한 줄로 풀 수 있을 것 같은데 생각대로 잘 되지 않았다. 그래서 결국 for문을 이용해서 번호의 뒷 네자리 전까지 횟수만큼(?) answer에 '*'을 더하고, for문 종료후 남은 뒷 번호 4자리를 붙여서 return 했다.

def solution(phone_number):
    answer = ''
    for i in range(len(phone_number[:-4])):
        answer += '*'
    answer += phone_number[-4:]
    return answer

 

<다른 풀이>

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

내 코드 중 2줄의 for문의 답은 문자열의 곱셈이었다. 저번에도 그렇지만, 문자열의 곱셈의 생각이 잘 안난다.

앞의 자릿수만큼 "*"을 곱하고 뒤의 문자열은 더해주기.