티스토리 뷰

그냥 기초를 짚고 넘어가자는 의미에서 아주 간단한, 문자열을 뒤집어서 리턴하는 함수를 작성해보려고 한다. 

 


1) 투 포인터를 이용

from typing import List


def reverseString(s: List[str]):
    left = 0
    right = len(s) - 1
    temp = 0
    
    while left < right:
        temp = s[left]
        s[left] = s[right]
        s[right] = temp
        
        left += 1
        right -= 1


if __name__ == '__main__':
    s = ["1", "2", "3", "4"]
    reverseString(s)
    print(s)

혹은 temp를 사용하지 않고도 다음과 같이 작성할 수 있다. (파이썬은 진짜 미친 거 같다)

from typing import List


def reverseString(s: List[str]):
    left = 0
    right = len(s) - 1
    
    while left < right:
        s[left], s[right] = s[right], s[left]
        
        left += 1
        right -= 1


if __name__ == '__main__':
    s = ["1", "2", "3", "4"]
    reverseString(s)
    print(s)

 

2) List 내장 함수 이용

 

from typing import List


def reverseString(s: List[str]):
    s.reverse()


if __name__ == '__main__':
    s = ["1", "2", "3", "4"]
    reverseString(s)
    print(s)

List가 가지고 있는 reverse를 사용하면 위 작업 없이도 편리하게 사용할 수 있다. (속도 차이는 많이 나지 않지만 조금 더 빠르다)

Comments