프로그래머스 문제풀기 - 핸드폰 번호 가리기
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 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
특정 글자수를 잘라내기 = 슬라이싱
인덱싱과 슬라이싱
공통점 문자열에서 특정값을 가져오는것
(인덱싱과 슬라이싱은, 문자열뿐만아니라, 리스트, 튜플, 심지어 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 |