문자열 여러 번 뒤집기

문자열 여러 번 뒤집기

프로그래머스 파이썬 - 문자열 여러 번 뒤집기

문자열 여러 번 뒤집기

문제

문자열 여러 번 뒤집기

문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항

  • my_string은 영소문자로만 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.
  • 1 ≤ queries의 길이 ≤ 1,000

입출력 예

my_stringqueriesresult
“rermgorpsam”[[2, 3], [0, 7], [5, 9], [6, 10]]“programmers”

입출력 예 설명

  • 예제 1번의 my_string은 “rermgorpsam”이고 주어진 queries를 순서대로 처리하면 다음과 같습니다.

    queriesmy_string
     “rermgorpsam”
    [2, 3]“remrgorpsam”
    [0, 7]“progrmersam”
    [5, 9]“prograsremm”
    [6, 10]“programmers”

    따라서 “programmers”를 return 합니다.

풀이

def solution(my_string, queries):
    arr = list(my_string)
    for s, e in queries:
        origin = arr[s:e+1:1]
        arr[s:e+1] = origin[::-1]
    return ''.join(arr)

이 문제는 queries에서 [s:e]가 주어질때 s부터 e까지 뒤집어서 그 위치에 교체하는 문제이다.

arr이라는 배열에 my_string을 담아주고 s부터 e까지의 문자열을 만들어서 교체를 해주면 된다.

replace로 시도해볼 수 있지만 replace로 시도할 경우 인덱스를 신경쓰지 않고 보이면 교체해버리는 문제가 발생하기 때문에 이 문제에서는 replace를 사용하지 못한다.


© 2021. All rights reserved.

Powered by Hydejack v9.1.6