728x90
반응형
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
풀이
이 문제는 슬라이싱과 문자열의 연산을 알고 있으면 쉽게 풀 수 있다.
- 문자열의 곱셈 : 똑같은 문자열이 곱한 숫자 개수만큼 합쳐진 문자열이 반환됨. ex) "하이" * 3 == "하이하아하이"
- 문자열의 덧셈 : 앞의 문자열 바로 뒤에 뒤에 문자열이 붙은 형태의 문자열이 반환됨. ex) "하"+"이" == "하이"
- 문자열 슬라이싱 : 문자열의 원하는 부분만 추출할 수 있음. ex) "안녕하세요"[:2] == "안녕"
먼저 * 처리를 해보자, 끝에 4자리를 제외한 나머지는 *로 변환 할 것이므로 phone_number의 길이 -4 만큼의 숫자를 *과 곱해준다.
그리고 슬라이싱으로 phone_number[-4:]를 해주면 뒤에서 4칸 앞에 부터 끝까지 문자열이 추출된다.
앞에서 구한 두개의 문자열을 + 연산자로 더한 값을 반환하면 된다.
def solution(phone_number):
return '*'*(len(phone_number)-4)+phone_number[-4:]
728x90
반응형
'코딩테스트 > Programmers' 카테고리의 다른 글
[Programmers/프로그래머스]제일 작은 수 제거하기 (0) | 2022.09.27 |
---|---|
[Programmers/프로그래머스]나누어 떨어지는 숫자 배열 (0) | 2022.09.27 |
[Programmers/프로그래머스]서울에서 김서방 찾기 (0) | 2022.09.27 |
[Programmers/프로그래머스]두 정수 사이의 합 (0) | 2022.09.27 |
[Programmers/프로그래머스]콜라츠 추측 (0) | 2022.09.27 |