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
아예 문자열을 재배치(?)하는 방법을 사용했다...!! 왜 이런 생각은 못했을까 ㅠㅠㅠ