파이썬/문제
주민번호 뒷자리 가리기
낑깡H
2023. 3. 22. 19:24
🍒 문제 링크
코드잇
🍒 문제 분석
마지막 네 자리를 * 처리 해야함
"-" 의 존재 여부에 따라 전체 길이가 달라지므로 끝에서부터 인덱싱 진행!
🍒 내 코드
def mask_security_number(security_number):
# 여기에 코드를 작성하세요
security_number = list(security_number)
security_number[len(security_number) -1] = "*"
security_number[len(security_number) -2] = "*"
security_number[len(security_number) -3] = "*"
security_number[len(security_number) -4] = "*"
new_security_number = ''.join(security_number)
return(new_security_number)
# 테스트 코드
print(mask_security_number("880720-1234567"))
🍓 내 해결 과정
문자열 -> 리스트로 변경 -> 각 원소 *로 변경 -> 다시 문자열로 합치기
🌽 다른 사람 코드
for i in range(len(num_list) - 4, len(num_list)):
num_list[i] = "*"
total_str = ""
for i in range(len(num_list)):
total_str += num_list[i]
1. for 문으로 변경 간략하게 가능
2. 리스트 -> 문자열로 바꾸기 : join 대신 += 로도 가능
def mask_security_number(security_number):
return security_number[:-4] + '****'
위의 과정 다 생략하고 슬라이싱을 통해서도 가능 : 제일 효율적!
🍉 깨달은 점 및 정리