배우고 느낀 것들
주민번호 뒷자리 가리기 본문
🍒 문제 링크
코드잇
🍒 문제 분석
마지막 네 자리를 * 처리 해야함
"-" 의 존재 여부에 따라 전체 길이가 달라지므로 끝에서부터 인덱싱 진행!
🍒 내 코드
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] + '****'
위의 과정 다 생략하고 슬라이싱을 통해서도 가능 : 제일 효율적!
🍉 깨달은 점 및 정리
'파이썬 > 문제' 카테고리의 다른 글
자릿수의 합 구하기 (Nonetype 에러 해결) (0) | 2023.03.22 |
---|---|
피타고라스 삼조 찾기 (0) | 2023.03.14 |
[코드트리] 숫자의 계절은 (1) | 2022.10.08 |
[코드트리] 좌우로 움직이는 로봇 (0) | 2022.10.03 |
[코드트리] datetime to datetime (1) | 2022.09.26 |
Comments