FrontEnd
Javascript
Diary
ML
CS
Django
Algorithm
AWS
Co-Work
HTML
CSS
Python
React
ReactNative

#15 알고리즘 연습 - 핸드폰번호가리기(Python)

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건

s는 길이 4 이상, 20이하인 문자열입니다.

입출력 예

phone_number return
01033334444 ***4444
027778888 *8888

문제풀이
받은 문자열의 뒷 4자리를 제외한 길이만큼 *를 생성해주고 문자열의 앞부분을 슬라이싱 해서 *로 치환시켜 주려고 하니까 str 형에는 대입이 안된다고 에러가 뜨길래 반대로 생성한 *에다가 뒷 4자리를 붙여주는 IDEA를 가져왔다

내 풀이 🏆

def solution(phone_number):
    answer = "*" * (len(phone_number)-4) + phone_number[len(phone_number)-4:]
    return answer

다른 풀이🏆

def solution(phone_number):
    answer = "*" * (len(phone_number)-4) + phone_number[-4:]
    return answer

위의 코드에서 보면 나는 마지막 4개의 문자를 가져오기 위해 len(s)-4:를 사용했는데 -4: 를 사용하게 되면 역순으로 마지막 4개를 가져오게 되므로 slicing의 -에 대해서 다시한번 생각해볼 수 있는 다른 풀이였다.