2019년 3월 25일 월요일

#18 알고리즘 연습 -핸드폰번호가리기 - python


핸드폰 번호 가리기


문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
  • s는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_numberreturn
01033334444*******4444
027778888*****8888





문제풀이 IDEA

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

반대로 생성한 *에다가 뒷 4자리를 붙여주는 IDEA를 가져왔다




나의 코드

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



다른 코드

 s[len(s)-4:] == s[-4:]


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


출처 : 프로그래머스

가장 많이 본 글