글 작성자: DevJonny

핸드폰 번호 가리기

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:]

위에서 설명한 두 코드를 + 연산자를 사용해서 합쳐주면 끝.

 

마치며

갑자기 한 줄 코딩에 빠졌는데

한 줄 코딩은 가독성을 떨어뜨릴 수 있으므로

단순히 재미로만 봐주시길 바랍니다.

 

읽기 편한 코드가 좋은 코드..

 

나도 잘 못함..ㅎㅎ

'Code > Algorithm' 카테고리의 다른 글

[C#] 소수인지 아닌지 판별하기  (0) 2021.10.12