문제
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
<제한 조건>
- phone_number는 길이 4 이상 20 이하인 문자열
내가 생각한 풀이 방법
[-4:-1]활용
phone_number를 list로 만들고
for문 돌면서 [-4:-1]에 해당하는 부분을
= *로 바꿔줌
list를 다시 str로?
코드로 구현
1차 시도
def solution(phone_number):
answer = ''
ph_lst = list(phone_number)
for i in ph_lst[-4:]:
i = *
answer = str(ph_lst)
return answer
- 일단은 for문에서 인덱스랑 요소(값)이 혼동되어 사용된 것 같은데..
- 게다가 반대로 생각함,,
2차 시도
def solution(phone_number):
answer = ''
ph_lst = list(phone_number)
while idx in [:-4]:
ph_lst[idx] = *
answer = str(ph_lst)
return answer
- idx 가 선언되지 않았다
- [:-4]를 바로 인덱스로 사용할 수 없다
- ph_lst[idx] = '*' (즉 문자열) 이 되어야 한다
- str(ph_lst)는 리스트를 문자열로 변환하지 않는다. ??
3차 시도
def solution(phone_number):
answer = ''
ph_lst = list(phone_number)
for i in (len(ph_lst)-4):
ph_lst[i] = '*'
return ''.join(ph_lst)
- range 빼먹음;
4차 시도
def solution(phone_number):
ph_lst = list(phone_number)
for i in range((len(ph_lst)-4)):
ph_lst[i] = '*'
return ''.join(ph_lst)
성공!
''.join() 지금 여러번 나오는 것 같은데 기억하자!
'Python > 프로그래머스' 카테고리의 다른 글
[프로그래머스 lv.1]x만큼 간격이 있는 n개의 숫자 (0) | 2023.08.29 |
---|---|
[프로그래머스 lv.1]행렬의 덧셈 (0) | 2023.08.29 |
[프로그래머스 level1] 하샤드 수 (0) | 2023.08.28 |
[프로그래머스 level1] 평균 구하기 (0) | 2023.08.28 |
[프로그래머스 level1] 콜라츠 추측 (0) | 2023.08.28 |