11/2 핸드폰 번호 가리기
https://school.programmers.co.kr/learn/courses/30/lessons/12948
틀린 코드.
def solution(phone_number):
answer = phone_number
for idx in range(len(phone_number) - 4) :
answer = answer.replace(answer[idx], '*')
return answer
문제는 풀고 넘어갔었는데 이 코드가 왜 틀린지 모르겠어서 한참 고민하다가 질문을 올렸던 문제이다.
answer = answer.replace(answer[idx], '*')
이 코드가 틀린 부분이었는데, 그 이유는 예를들어 ‘11’이라는 문자열 a가 있다고 치면,
a = '11'
a = a.replace(a[0], '*')
print(a) # "**"
replace 함수는 a를 ‘‘*1”이 아닌 “**“로 바꾼다. 즉, 해당 인덱스 자리의 문자만 바꾸는것이 아니라 해당 문자와 같은 문자를 모두 바꾸기 때문에 틀린것이다.
댓글남기기