알고리즘/프로그래머스

[프로그래머스 / Python] 핸드폰 번호 가리기 | 초코더

cloud_nice 2020. 1. 8. 21:11

문제 설명

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

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

제한 사항

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

입출력 예

phone_number

return

01033334444

*******4444

027778888

*****8888

접근법

저는 두가지 방법으로 생각해보았는데 첫번째 방법이 왜 오류가 나는지 잘모르겠습니다!

 

1. 문자열의 앞에서부터 len(phone_number) - 4 까지 "*"로 바꿔줍니다. 반복문을 사용하고 replace함수를 사용했습니다.

 

2. len(phone_number) - 4 만큼 "*"을 곱해주고 문자열 뒷 4자리는 그대로 붙였습니다. 

나의 코드

1. 오류나는 코드

def solution(phone_number):
    for i in range(len(phone_number)-4):
        phone_number = phone_number.replace(phone_number[i],"*")

    return phone_number

2. 정상 코드

def solution(phone_number):
    return "*"*(len(phone_number)-4) + phone_number[-4:]