728x90
📌 풀이 1 (오답)
class Solution:
def reverseString(self, s: List[str]) -> None:
left = 0
right = len(s) - 1
while left < right:
s[left] = s[right]
s[right] = s[left]
left += 1
right -= 1
문제에서 '리턴 없이 리스트 내부를 직접 조작하라' 라는 제약사항이 있으므로 투 포인터를 이용해서 풀었다.
하지만 여기서 생각지 못한 오류가 있었는데
s[left] = s[right]
s[right] = s[left]
해당 부분이 절차적으로 실행되면서 두 번째 줄이 실행 될 때는 이미 s[left]가 기존의 리스트와 달라져 있어 원하는 답이 나오지 않는 것이였다. 따라서 해당 부분을 동시에 실행해야 하는 필요성이 있었다.
📌 풀이 2 (정답)
class Solution:
def reverseString(self, s: List[str]) -> None:
left = 0
right = len(s) - 1
while left < right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
해답은 매우 간단하다.
원하는 명령을 한 줄에 작성하여 비동기적으로 실행시키면 된다.
'Algorithm' 카테고리의 다른 글
[파이썬] 프로그래머스 - 위장 (0) | 2022.04.07 |
---|---|
[파이썬] 프로그래머스 - 전화번호 목록 (0) | 2022.04.02 |
[파이썬] 프로그래머스 - 완주하지 못한 선수 (0) | 2022.03.27 |
[코틀린] 프로그래머스 64061(크레인 인형뽑기 게임) (0) | 2022.01.19 |
[파이썬] 프로그래머스 64061(크레인 인형뽑기 게임) (0) | 2022.01.19 |