def mask_security_number(security_number):
# 코드를 입력하세요.
security_number = security_number[:-4] + "****"
return security_number
# 테스트
print(mask_security_number("880720-1234567"))
print(mask_security_number("8807201234567"))
print(mask_security_number("930124-7654321"))
print(mask_security_number("9301247654321"))
print(mask_security_number("761214-2357111"))
print(mask_security_number("7612142357111"))
나는 그렇게 어렵지는 않았던 문제였다. 뒤에서부터 4번째자리까지 기준을 잡고 그 뒤에 ****
을 더했기 때문에 문제가 없었는데, 풀이 후기보면 말들이 많았다. 그래서 모범답안을 참고해야할 것 같다.
def mask_security_number(security_number):
# security_number를 리스트로 변환
num_list = list(security_number)
# 마지막 네 값을 *로 대체
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]
return total_str
# 테스트
print(mask_security_number("880720-1234567"))
print(mask_security_number("8807201234567"))
print(mask_security_number("930124-7654321"))
print(mask_security_number("9301247654321"))
print(mask_security_number("761214-2357111"))
print(mask_security_number("7612142357111"))
먼저 문자열을 배열로 바꿔주는 list()
를 사용한다. 그리고 반복문을 통해서 배열요소를 하나씩 빼와서 *
로 바꿔 주는데 range()
를 활용한다. 시작점은 len(배열)-4
로 하고, len(배열)
로 끝점으로 설정한다. 그리고 total_str 이라는 빈 문자열을 가져와서 또 다른 반복문을 통해서 배열의 요소를 차곡차곡 쌓으면 된다.
def mask_security_number(security_number):
num_list = list(security_number)
# 마지막 네 값을 *로 대체
for i in range(len(num_list) - 4, len(num_list)):
num_list[i] = '*'
# 리스트를 문자열로 복구하여 반환
return ''.join(num_list)
join()
을 활용하면 배열을 문자열 형식으로 붙여줄 수 있다.
''
은 구분자로서 없다는 뜻이기에 배열을 다닥다닥 붙여줄 수 있다는 얘기이다.
아무튼 문자열을 배열로 바꾸는
list()
join()
구분자를 앞에 설정해주고 배열을 문자열로 붙일수 있다는 것도 알게됨