NIRVANA

[level 1] 핸드폰 번호 가리기 본문

Coding test(Python3)/Programmers

[level 1] 핸드폰 번호 가리기

녜잉 2023. 7. 11. 01:27

문제

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

 

 

문제 풀이 접근법1

1) phone_num을 str형에서 list로 변환한다.

2) for문을 전화번호의 앞 7자리 만큼, 즉 7번 반복하여 앞 자리 7개의 원소를 *로 바꾼다.

3) 다시 phone_num을 list에서 str형으로 변환한다. 

def solution(phone_number):
    answer = ''
    phone =[]
    phone = list(str(phone_number))
    
    for i in range(len(phone)-4):
        phone[i] = '*'
        
    answer = ''.join(phone)
    
    
    return answer

아놔!! 점수 캡처 깜빡함

 


다른 분들 풀이

def hide_numbers(s):


    return "*"*(len(s)-4)+s[-4:]
    #함수를 완성해 별이를 도와주세요

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : " + hide_numbers('01033334444'));

진짜 천재 아님?

앞 7글자는 *복사하고 그 다음 뒤 글자는 문자열 슬라이싱으로 자르고 붙여서 만들다니!!

진짜 감탄만 나옴..

사실 문자열도 슬라이싱 가능하다는 걸 처음 알았다.ㅋ

음의 값인 -n으로 슬라이싱을 하면 뒤에서 n번째 요소를 가리키는 것이라고 한다.

참고: https://emilkwak.github.io/python-list-indexing-slicing-using-minus-integer

 

Python 리스트 인덱싱 & 슬라이싱에 음의 값(마이너스) 사용해 보기

Python, Pandas를 Excel보다 사랑하는 직장인을 위한 블로그

emilkwak.github.io

 

나도 열심히 배워서 for문에서 벗어나야지...^~^