본문 바로가기

Python(알고리즘,문제풀이)/프로그래머스(코딩기초트레이닝)

코딩기초트레이닝 / 문자열 여러 번 뒤집기

728x90

📚문제

출처 : 프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/181913)

 

📝풀이

# 내 틀린 코드
for i in queries:
    if i[0]==0:
        my_string = my_string.replace(my_string[i[0]:i[1]+1], my_string[i[1]::-1])
        print(my_string)
    else:
        my_string = my_string.replace(my_string[i[0]:i[1]+1], my_string[i[1]:i[0]-1:-1])
        print(my_string)

전에 비슷한 (문자열 슬라이싱 or 문자열 순서 변경 등) 문제에서도

보통 replace가 제일 먼저 떠올라서 replace로 시도한다

그러면 예를 들어 my_string이 고정되어야 하는데 변경이 되거나 할 수도 있고

특히 이 문제에서는 원하는 부분 말고 다른 부분에서도 똑같은 문자열이 있다면 거기도 변경이 될 수 있는 문제가 있다

 

def solution(my_string, queries):
    for start, end in queries:
        my_string = my_string[:start] + my_string[start:end+1][::-1] + my_string[end+1:]
    return my_string

그래서 이렇게 변경되는 부분의 앞/뒤로 문자열 슬라이싱하여 결합하는 방법을 사용하는것이 좋다

728x90