2024. 9. 2. 08:17ㆍPYTHON
문제
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
my_stringoverwrite_stringsresult
my_string : "He11oWor1d"
overwrite_string : "lloWorl"
s : 2
result : "HelloWorld"
my_string : "Program29b8UYP"
overwrite_string : "merS123"
s : 7
result : "ProgrammerS123"
def solution(my_string, overwrite_string, s):
answer = my_string.replace(my_string[s:s+len(overwrite_string)], overwrite_string)
return answer
오답의 원인
replace 함수를 사용하면 my_string 안에서 my_string[s:s+len(overwrite_string)]와 같은 모든 부분 문자열을 바꾸게 된다. 예를 들어, my_string에 동일한 부분 문자열이 여러 번 나타날 경우 예상치 못한 결과가 나올 수 있다.
정답
def solution(my_string, overwrite_string, s):
answer = my_string[:s] + overwrite_string + my_string[s+len(overwrite_string):]
return answer
여기서는 my_string을 시작점부터 s번째 문자, overwrite_string + overwrite_string이후 부터 끝까지로 3등분하여 처리하여 정답을 얻어낸다.
'PYTHON' 카테고리의 다른 글
[프로그래머스] 문자열 섞기 (0) | 2024.09.06 |
---|---|
코딩테스트 연습 > 코딩테스트 입문 > 짝수 홀수 개수 (0) | 2024.09.05 |
[파이썬]표준 라이브러리 (0) | 2024.08.11 |
[파이썬]왕초보를 위한 python 기초 예제 (0) | 2024.08.07 |
[파이썬] 문자열에서 자주 사용하는 함수 (0) | 2024.08.04 |