알고리즘/프로그래머스
[프로그래머스 / 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:]