프로그래밍/프로그래머스

[파이썬/python] 프로그래머스 문자열 겹쳐쓰기

기록합시다 2025. 3. 9. 01:15

문자열 겹쳐쓰기

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

문자열싱

1. 기본 슬라이싱

슬라이싱은 [start:end:step] 형식으로 작성됨.

  • start: 포함되는 시작 인덱스 (없으면 0부터 시작)
  • end: 포함되지 않는 끝 인덱스
  • step: 몇 칸씩 건너뛸지
text = "Hello, World!"
print(text[0:5])  # "Hello" (0부터 5까지, 5는 제외)
print(text[7:12])  # "World"
  • text[0:5] → 0번 인덱스부터 5번 인덱스 '전'까지 (Hello)
  • text[7:12] → 7번 인덱스부터 12번 인덱스 '전'까지 (World)

end 인덱스는 포함되지 않음! (end-1까지 선택됨

2. 생략 가능 (start, end 없이 사용)

print(text[:5])   # "Hello"  (처음부터 5번 인덱스 전까지)
print(text[7:])   # "World!" (7번 인덱스부터 끝까지)
print(text[:])    # "Hello, World!" (전체 문자열)

3. 끝에서부터 슬라이싱

음수 인덱스를 사용하면 문자열의 끝에서부터 접근할 수 있음.

  • 1: 마지막 문자, 2: 끝에서 두 번째 문자 등
print(text[-6:-1])  # "World" (-6부터 -1까지, -1은 제외)

3. 스텝 사용: 2칸씩 건너뛰기

step을 사용하면 슬라이싱할 때 몇 칸씩 건너뛸지 지정할 수 있음.

  • 예: step=2는 2칸씩 건너뛰며 자름.
print(text[::2])  # "Hlo ol!" (2칸씩 건너뛰어)
**print(text[1::2])  # "el,Wrd"   (1번 인덱스부터 2칸씩)**

4. 시작부터 끝까지 슬라이싱

시작과 끝을 생략하면 전체 문자열을 대상으로 슬라이싱을 실행함.

  • text[:]: 전체 문자열
print(text[:5])  # "Hello" (시작부터 5까지, 5는 제외)

5. 끝부터 시작까지 슬라이싱

start와 end를 음수로 지정하면 문자열의 뒤쪽에서부터 슬라이싱을 할 수 있음.

  • 예: text[-6:]: 뒤에서 여섯 번째부터 끝까지
print(text[-6:])  # "World!" (-6부터 끝까지)

6. 문자열 뒤집기 (step = -1)

print(text[::-1])  # "!dlroW ,olleH" (문자열 뒤집기)

-문자열에 자꾸 reversed() 쓰려고함. 기억.