NIRVANA
[level 1] 핸드폰 번호 가리기 본문
문제
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 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
나도 열심히 배워서 for문에서 벗어나야지...^~^
'Coding test(Python3) > Programmers' 카테고리의 다른 글
[level 1] 제일 작은 수 제거하기(성공) (0) | 2023.07.12 |
---|---|
[level 1] 없는 숫자 더하기 (0) | 2023.07.12 |
[level 1] 음양 더하기 (0) | 2023.07.11 |
[level 1]나누어 떨어지는 숫자 배열 (0) | 2023.07.11 |
[level 1] 서울에서 김서방 찾기 (1) | 2023.07.11 |