Python - 문자열 뒤집기

개발자·2021년 11월 14일

알고리즘

목록 보기
2/5
post-thumbnail

파이썬을 이용한 알고리즘 공부 내용을 정리합니다.


문제

LeetCode-344

문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라


1. 투 포인터를 이용한 스왑

def reverseString(self, s: List[str]) -> None:
    left, right = 0, len(s) - 1			#바꿀 배열의 위치를 지정할 변수 선언
    while left < right:				#모든 속성을 조작할 때까지 반복
        s[left], s[right] = s[right], s[left]	#left, right에 해당하는 속성을 스왑
        left += 1
        right -= 1

주요 내용

  • 리턴 없이 리스트 내부를 조작해야 하므로 위치를 스왑해가며 조작한다.

결과

풀이에는 문제가 없지만 코드가 길다.


2. reverse()함수를 이용

def reverseString(self, s: List[str]) -> None:
    s.reverse()

주요 내용

  • 파이썬 기본기능인 reverse()함수를 이용해 코드를 줄일수 있다. reverse()는 리스트에만 제공된다.
  • 슬라이싱을 사용해도 되나 LeetCode에서는 공간복잡도를 O(1)로 제한하고 있어 변수할당에 제한이 있다고 한다(?) 코딩 테스트를 보는 플랫폼별 특징을 사전에 잘 알고 풀자

결과

문제를 보고 '이런기능을 제공하는 함수가 없나?' 생각이 들었는데 역시나 있었다. 이왕이면 짧은게 좋다. 실행시간은 크게 차이나지 않는 듯 하다.

profile
Beginner

0개의 댓글