TIL/파이썬

프로그래머스 문제풀기 - 핸드폰 번호 가리기

monawa 2022. 10. 2.
728x90

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

 

입출력 예

phone_numberreturn

"01033334444" "*******4444"
"027778888" "*****8888"

 

푸는법 

1. 정답 값지정 

2. 주어진 번호에서 마지막 4자리를 제외한 숫자를 *로 더함 

3. 주어진 번호에서 마지막 4자리를 잘나내서  정답값에 추가

 

 

 

정답

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

 

알아야 할 개념

문자수 세기  = len

특정 글자수를 잘라내기  = 슬라이싱

https://wikidocs.net/13#_9

 

인덱싱과 슬라이싱

공통점 문자열에서 특정값을 가져오는것

(인덱싱과 슬라이싱은, 문자열뿐만아니라, 리스트, 튜플, 심지어 range()함수같이 
순서가 있는 군집자료형(시퀀스자료형)에서도 사용할 수 있습니다.)

차이점 

인덱싱(Indexing)이란 무엇인가를 "가리킨다"는 의미

슬라이싱(Slicing)은 무엇인가를 "잘라낸다"는 의미

 

인덱싱(Indexing)은  a[0] 의 구조로 (파이썬은 0부터 센다) 문자열안의 특정한 값을 뽑아낸다 

단순히 1개의 글자만 뽑아오는것이아닌 여러개를 뽑아오는 방법은 

 

슬라이싱(Slicing)

[start : end : step]

a[시작 번호:끝 번호]

콜론 왼쪽 숫자 = 우리가 추출하기 원하는 시작 인덱스 

콜론 오른쪽에 써주는 숫자 = 우리가 추출하기 원하는 끝 인덱스 + 1

시작번호와 끝번호를 생략시 문자열 처음부터 끝까지 뽑아내고 

-기호를 사용하여 뒤부터도 가능하다 

 

 

인덱싱, 슬라이싱 숫자개념

h e l l o   p y t h o n   w o r l d !
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
728x90

댓글