파이썬으로 핸드폰 번호 마스킹하기

Joy Lee·2020년 10월 8일
0

python til

목록 보기
2/2

프로그래머스 핸드폰 번호 가리기 풀기

문제는 다음과 같다.

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

제한 조건
s는 길이 4 이상, 20이하인 문자열입니다.

입출력 예
phone_number return
01033334444 ***4444
027778888 *8888

1. 파이썬 함수 공식 리마인드

def solution(phone_numer):
	return 아웃풋

2. 뒤 4자리 숫자값, 나머지에는 *를 리턴하자

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

#"*"를 phone_number 길이 -4 만큼 그대로 출력하고 
# + phone_number -4의 인덱스값을 출력하자 []로 묶어서!

3. 짠!

🧐 다른 사람들은 for문으로도 풀었던데..?

4. for문과 range 함수로 재접근

  • range 함수 : 범위를 지정
#for문 공식

for 변수 in 리스트:
		실행할 코드
def solution(phone_number):
	for i in range(len(phone_number) - 4):
# phone_number 보다 뒤에서 4개 적은 개수 만큼 반복하고
		phone_number = phone_number.replace(phone_number[i], "*") 
# 그것을 "*"로 치환 -> 뒤 숫자 4개는 어디로????
	return phone_number

5. 삽질

phone_number = phone_number.replace(phone_number[i], "*") 

여기까지만 해도 정답이 되는데, 이건 그냥 *만 출력한 것 아닌가?
왜 이 뒤에 +phone_number[-4:]를 붙이지 않는 건지 모르겠다ㅠㅠ

0개의 댓글