728x90
📚문제

📝풀이
# 내 틀린 코드
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
'Python(알고리즘,문제풀이) > 프로그래머스(코딩기초트레이닝)' 카테고리의 다른 글
코딩기초트레이닝 / 가까운 1찾기 (0) | 2023.10.18 |
---|---|
코딩기초트레이닝 / 문자 개수 세기 (0) | 2023.10.18 |
코딩기초트레이닝 / 주사위게임 3 (0) | 2023.10.12 |
코딩기초트레이닝 / 배열 만들기 2 (1) | 2023.10.10 |
프로그래머스 코딩테스트연습 / 조건 문자열 - 파이썬 (0) | 2023.10.04 |