반응형
문제
문자열 my_string, overwrite_string과 정수 s 가 주어 집니다. 문자열 my_string의 인덱스 s 부터 overwrite_string 으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
입출력 예
my_sting | overwrite_string | s | result |
"He11oWor1d" | "lloWorl" | 2 | "HelloWorld" |
"Program29b8UYP" | "merS123" | 7 | "ProgrameerS123" |
문제풀이
문자열 my_string의 s 인덱스를 시작하여 overwrite_stirng 으로 바꾸고 그뒤 다시 my_string 문자열을 연결하는 함수를 작성하는 문제 입니다. 이를 문제를 해결 하기 위해 문자열 슬라이싱 기능을 활용 합니다.
def solution(my_string, overwrite_string, s):
# my_string의 시작부터 s 인덱스까지의 부분과
# s 인덱스 이후 overwrite_string의 길이만큼 건너뛴 부분 이후의 문자열을 잘라내고
# 이 두 부분 사이에 overwrite_string을 삽입하여 새로운 문자열을 생성
# overwrite_string을 삽입한 후의 종료 인덱스
end_index = s + len(overwrite_string)
return my_string[:s] + overwrite_string + my_string[end_index:]
문자열 슬라이싱
문자열 슬라이싱은 파이썬에서 문자열의 일부를 추출하거나 복사하는 방법입니다. 문자열의 특정 부분만 쉽게 가져올수 있습니다. 다음은 기본 문법입니다.
문자열[시작 인덱스:끝 인덱스:스탭]
- 시작인덱스:슬라이싱할 부분의 시작 위치입니다. 시작 인덱스를 생략하면 기본값은 0(문자열 시작)입니다.
- 끝 인덱스:슬라이싱할 부분의 끝위치 입니다. 끝 인덱스를 생략하면 기본값은 문자열의 길이(문자열의 끝) 입니다
- 스탭: 선택적으로 지정할 수 있는 인자로, 몇개의 문자를 건더 뛸지를 나타냅니다. 스탭은 생략하면 기본값은 1이며, 음수로 나타내면 역순으로 나타냅니다.
s = "Hello, World!"
print(s[0:5]) # "Hello"
print(s[7:]) # "World!"
print(s[:5]) # "Hello"
print(s[::2]) # "Hlo ol!"
print(s[-1]) # "!"
print(s[-5:-1])# "orld"
반응형