핸드폰 번호 가리기
https://programmers.co.kr/learn/courses/30/lessons/12948
코딩테스트 연습 - 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자
programmers.co.kr
📕 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한조건 : phone_number는 길이 4 이상, 20이하인 문자열입니다.
✏️ 입력
"01033334444"
"027778888"
🖨️ 출력
"*******4444"
"*****8888"
💡 해결해 봅시다.
제한조건은 길이 4이상 20 이하 문자열. 굳이 신경 안써도 됨.
마지막 4자리를 제외하고 전부 * 로 바뀌어야 함.
즉, 10자리 문자열이라면
6자리는 *
4자리는 해당하는 문자열이어야 한다.
1. 문자열 길이 - 4 만큼 * 입력
"*"*(len(phone_number)-4)
len() 함수는 문자열 혹은 배열의 길이를 확인해주는 함수.
총 길이에서 4를 뺀 만큼 문자열 "*" 을 추가해준다.
2. 나머지 전화번호 뒷 4자리
phone_number[-4:]
어떤 배열에서 array[ : ] 를 사용하면 원하는 위치의 숫자들을 뽑아올 수 있음.
이를 인덱스 슬라이싱 이라고 한다.
[-4:] 으로 슬라이싱 하면 -4번째의 인덱스에서 끝까지 뽑아온다는 뜻.
1234567 에서 [-4:] 를 하면 -4번째 인덱스가 4이기 때문에 4567 만 뽑아온다.
⌨️ 코딩해봅시다.
def solution(phone_number):
return ("*"*(len(phone_number)-4)) + phone_number[-4:]
위에서 설명한 두 코드를 + 연산자를 사용해서 합쳐주면 끝.
마치며
갑자기 한 줄 코딩에 빠졌는데
한 줄 코딩은 가독성을 떨어뜨릴 수 있으므로
단순히 재미로만 봐주시길 바랍니다.
읽기 편한 코드가 좋은 코드..
나도 잘 못함..ㅎㅎ