자료구조, 알고리즘

프로그래머스 코딩테스트 연습 [문자열 겹쳐쓰기]

shinetheworld 2025. 2. 19. 16:58

문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return하는 solution 함수를 작성해 주세요.

 

제한사항

  • my_stringoverwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 <= overwrite_string의 길이 <= my_string의 길이 <= 1,000
  • 0 <= s <= my_string의 길이 - overwrite_string의 길이

입출력 예

my_string overwrite_string s result
"He11oWor1d" "lloWorl" 2 "HelloWorld"
"Program29b8UYP" "merS123" 7 "ProgrammerS123"

 

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.

해결

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

 

새로 알게 된 점

문자열은 수정이 불가능하기 때문에 리스트 슬라이싱을 활용해서 풀이

list[:n] -> list에서 0부터 n-1까지 슬라이싱

list[n:] -> list에서 n부터 끝까지 슬라이싱