
(EASY) LeetCode No.355 - Reverse String 풀러가기
교재에서는 두 가지 방식을 소개하고 있다. 이번에도 혼자 풀어보았다. 이번엔 43분 24초가 소요됐다.

class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
temp1: str
temp2: str
length = len(s)
# 데이터 길이를 반으로 나눈 값만큼 반복문을 돌리도록 계산
repeat = length // 2
for i in range(repeat):
# 리스트의 데이터 수가 홀수개인 경우.
# 정가운데를 제외하고 맨 앞과 맨 뒤를 차례로 바꿔 준다.
if length % 2 == 1:
temp1 = s[i]
end_no:int = length-1-i
temp2 = s[end_no]
s[end_no] = temp1
s[i] = temp2
# 리스트의 데이터 수가 짝수개인 경우.
else:
temp1 = s[i]
end_no:int = length-1-i
temp2 = s[end_no]
s[end_no] = temp1
s[i] = temp2

교재에서 제시해주는 풀이 두 가지보다, 이번에도 내가 작성한 코드가 빨랐다.
바로 reverse()로 뒤집으면 될 줄 알았는데, leetcode에서 기본 함수정의 부분은 가져와서 사용하려고 했다.
def reverseString(self, s: List[str]) -> None:
위가 리트코드에서 제공하는 기본 틀, 파이참에서 쓰기위해 아래와 같이 self를 지웠다.
def reverseString(s: List[str]) -> None:
근데 Pycharm에서 List가 정의되지 않았다고 에러가 떴다. 그래서 '아 이건 안되나보다' 하고 나만의 코드를 작성했다.
NameError: name 'List' is not defined
일단 제출 후 교재를 보니 내가 처음에 생각했던 reverse() 한 줄로 끝내버리는 게 있었다... 그래서 우리의 스승 gpt에게 물어보니. import를 해주어야 한다고...
from typing import List
위를 import 해주니 한방에 풀렸다. leetcode에서도 s.reverser() 한 줄 작성하니 Accepted가 떴다. 확실히 이 방법이 간결해서 보기에 너무 좋았다. 그래도 내가 고심해서 짠 코드를 칭찬하자면, 이것보다 더 실행시간이 짧다는 것.
파이썬을 잘 모르다보니 이와 같이 쉽게 해결 할 수 있는 걸 꼬아서 생각한 것 같다. 이제 시작하는 것이니 계속 공부하면서 좋아지리라 기대한다 !