소소한 컴퓨터 이야기

핸드폰 번호 가리기

by Cori

문제

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

 

제한조건 

· s는 길이 4 이상, 20이하인 문자열 

 

입출력 예

phone_number return
'01033334444' '*******4444'
'027778888' '*****8888'

풀이

1. Me

def solution(phone_number):
    tmp = list(phone_number)
    answer = []
    for x in range(len(tmp)):
        if (x + 4) < len(tmp):
            answer.append('*')
        else:
            answer.append(tmp[x])
    return ''.join(answer)

if-else 문을 활용하여, 맨 뒤 4자리를 제외한 자리에 *을 집어넣었다. 

 

* 리스트를 문자열로 변환하기 위해, ''.join() 구문을 활용하였다. 

 

2. Others

def hide_numbers(s):
    return "*"*(len(s)-4) + s[-4:]

문자열 연산을 활용하여, '*'를 (문자열 길이 - 4)만큼 반복하고, 리스트 슬라이싱을 이용하여 끝 4자리를 더했다. s[-4:] 와 같은 표현법은 자주 접하지 못하다 보니 생각지도 못했는데, 이번 기회를 통해 사용법을 알게 되었다.


개념 정리

1. join 연산자

-> '구분자'.join(리스트) 형태로 쓰이며, 문자열을 반환해주는데 사용된다.

'CS > Coding Test' 카테고리의 다른 글

최대공약수와 최소공배수  (0) 2021.08.21
평균 구하기  (0) 2021.08.21
하샤드 수  (0) 2021.08.21
직사각형 별 찍기  (0) 2021.08.21
x만큼 간격이 있는 n개의 숫자  (0) 2021.08.21

블로그의 정보

코딩하는 오리

Cori

활동하기