코딩 테스트/프로그래머스
[Python] 프로그래머스 문자열 여러 번 뒤집기
위시리
2024. 10. 9. 23:52

문제 분석
- 문자열 my_string & 이차원 정수 배열 queries
- queries = [s,e] 형태
- my_string 의 인덱스 s부터 인덱스 e까지 뒤집으라는 의미
- 최종 문자열 return
코드 설계
- queries 만큼 반복하면서 배열을 빼고
- s, e에 저장
- 그 배열안에 들어있는 값의 인덱스만큼 문자열을 빼서
- 뒤집고
- 다시 그 배열 안에 넣기
- 바뀐 문자열이 다음 반복문에서도 적용되어야 함
정답 코드
실패
def solution(my_string, queries):
str = list(my_string)
global answer
for arr in queries:
s = arr[0]
e = arr[1]
answer = str[0:s]
rev = str[s:e+1]
rev.reverse()
answer += rev
answer += str[e:]
str = answer
return answer
다른 사람 코드 1
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
- 파이썬 [::-1] : 모든 숫자를 1만큼 역순으로 바꾼다.
다른 사람 코드 2
def solution(my_string, queries):
ans = list(my_string)
for s,e in queries :
ans[s:e+1] = ans[s:e+1][::-1]
return ''.join(ans)