Programmers/코딩 기초 트레이닝

[프로그래머스] 문자열 겹쳐쓰기

jjam-mo 2024. 2. 11. 11:39

 

<내가 쓴 오류 코드>

def solution(my_string, overwrite_string, s):
    answer = ''
    answer = my_string.replace(my_string[s:s+len(overwrite_string)], overwrite_string)
    return answer

 

이렇게 실행해보니 Test 6에서 오류가 하나 떴다... 

 

왜 뜨는지 모르고 계속 생각을 해봤다...그래도 이유를 모르겠다.

 

검색을 해보니 replace 메소드는 그 위치의 값을 바꾸는 것이 아니라 그냥 해당 부분이 있으면 바꾸는 것이다.

 

따라서 반례로 my_string이 "aaaaaa"이고 overwrite_string이 "bbb"이고 s가 3이면

 

바뀌어야 할 부분은 "aaa"인데 my_string에 "aaa"가 많아서 무엇을 바꿔야하는지 몰라 오류가 뜨는 것이다.

 

이것이 replace의 특징인 것 같다. 

 

 

<gpt가 쓴 코드>

def solution(my_string, overwrite_string, s):
    answer = ''
    answer = my_string[0:s] + overwrite_string + my_string[s + len(overwrite_string):]
    return answer

 

아예 문자열을 재배치(?)하는 방법을 사용했다...!! 왜 이런 생각은 못했을까 ㅠㅠㅠ