코드 이해하기

string_list[s:e+1] = string_list[s:e+1][::-1]
string = ''.join(string_list)
  1. string_list가 리스트임 문자열은 불변(immutable) 자료형이라 직접 변경할 수 없으므로, 먼저 문자열을 리스트로 변환해야 합니다.string_list는 문자열이 리스트 형태로 변환된 것입니다. 예를 들어:

    string = "abcdef"
    string_list = list(string)  # ['a', 'b', 'c', 'd', 'e', 'f']
    

  1. string_list[s:e+1] 슬라이싱

    string_list[s:e+1]는 리스트의 일부 구간을 의미합니다.

    예를 들어:

    s, e = 1, 4
    string_list[s:e+1]  # ['b', 'c', 'd', 'e'] (인덱스 1부터 4까지)
    

  1. [::-1] 뒤집기

    [::-1]리스트나 문자열을 역순으로 뒤집는 슬라이싱 방법입니다.

    예시:

    sublist = ['b', 'c', 'd', 'e']
    reversed_sublist = sublist[::-1]  # ['e', 'd', 'c', 'b']
    

  1. 대입으로 원본 리스트 일부 수정

    string_list[s:e+1] = string_list[s:e+1][::-1]
    

    이 코드는 string_list의 일부 구간을 뒤집은 값으로 바꾸는 것입니다.

    예제:

    string_list = ['a', 'b', 'c', 'd', 'e', 'f']
    s, e = 1, 4
    string_list[s:e+1] = string_list[s:e+1][::-1]
    print(string_list)  # ['a', 'e', 'd', 'c', 'b', 'f']
    

  1. ''.join()으로 리스트를 문자열로 변환 리스트를 다시 문자열로 변환하기 위해 **''.join()*을 사용합니다.

    string = ''.join(string_list)
    print(string)  # "aedcbf"
    

전체 흐름 예제

string = "abcdef"
string_list = list(string)  # ['a', 'b', 'c', 'd', 'e', 'f']

s, e = 1, 4
string_list[s:e+1] = string_list[s:e+1][::-1]  # ['a', 'e', 'd', 'c', 'b', 'f']

string = ''.join(string_list)
print(string)  # "aedcbf"

요약

  1. string_list[s:e+1]: 뒤집을 부분 문자열(리스트 형태).
  2. [::-1]: 리스트나 문자열을 역순으로 뒤집는 슬라이싱.
  3. string_list[s:e+1] = ...: 리스트의 일부를 뒤집은 값으로 교체.