Programmers/programmers
[프로그래머스]문자열 여러번 뒤집기 // mutable, immutable의 특성 활용하기.
딸기뚜왈기
2023. 12. 10. 19:52
str자료형 → mutable → 부분수정불가
def solution(my_string, queries):
answer = ''
for query in queries:
my_string = my_string[:query[0]] + my_string[query[0]:query[1]+1][::-1] + my_string[query[1]+1 :]
return my_string
문자열은 불변(immutable)한 자료형이므로 직접적으로 수정할 수 없다.
따라서 문자열의 일부를 수정하는 대신, 새로운 문자열을 생성하여 원하는 결과를 얻는다.
새로운 문자열을 만들어서 반환하는데, 각 부분을 뒤집어서 연결하는 것이 핵심.
이는 문자열의 불변성을 고려하여 작성된 코드다.
만약 리스트와 같은 가변(mutable)한 자료형을 다룬다면 직접적인 수정이 가능하겠지만,
문자열은 변경 불가능하기 때문에 이와 같은 방식으로 처리해야 한다.
list 자료형 → immutable → 부분수정가능
def solution(my_string, queries):
answer=list(my_string)
for s,e in queries:
answer[s:e+1]=answer[s:e+1][::-1]
return ''.join(answer)
리스트는 가변(mutable)하므로 직접적으로 수정이 가능하다는 특성을 활용한 코드.
주어진 코드는 문자열을 리스트로 변환하고,
쿼리를 통해 리스트의 특정 부분을 뒤집은 뒤,
다시 문자열로 변환하여 반환하는 방식으로 동작한다.