최대 1 분 소요

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”이 아닌 “**“로 바꾼다. 즉, 해당 인덱스 자리의 문자만 바꾸는것이 아니라 해당 문자와 같은 문자를 모두 바꾸기 때문에 틀린것이다.

댓글남기기