728x90
반응형
LeetCode의 344번 문제 "Reverse String"이다.
제한 조건에는 문자열을 뒤집기 위한 다른 공간을 할당할 필요가 없다고 나와있다. 문제를 풀기 위해 2가지 방법을 사용했다. 하나는 slicing을 이용하는 방법이고 다른 하나는 reverse() 메서드를 이용하는 방법이다. 먼저 reverse() 메서드를 이용하는 경우를 보자
테스트도 통과하고 코드 제출도 통과다 그렇다면 slicing을 사용한 경우는 어떨까?
테스트를 통과하지 못한다. 테스트를 통과하지 못하니 당연히 제출해도 별 의미가 없다. 그래서 이런 차이가 발생하는 이유가 뭘까? 여기서 www.geeksforgeeks.org/python-reversed-vs-1-which-one-is-faster/ 답을 찾을 수 있었다.
정리하자면, slicing이나 revers()함수나 둘 다 역순으로 출력한다는 행위는 같다. 다만 reverse() 함수는 데이터의 복사가 일어나지 않으며 이터레이터를 반환하고, slicing의 경우 복사본을 만들고 나서 작업을 처리한다고 되어있다. 즉 slicing으로 풀게 되면 spacing(1)이 넘어버리는 상황이 생겨버리는 것이다. 문제의 제한 조건을 만족하지 못하니 당연히 통과할리가 없다.
728x90
반응형
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode] Two Sum (0) | 2021.10.03 |
---|---|
[Leet Code] longest-palindromic-substring (1) | 2021.09.29 |
[Leet Code] Group Anagrams (0) | 2021.09.26 |
[LeetCode] Palindrome 고찰하기 (0) | 2021.09.12 |
[Leet Code] Reorder Data in Log Files (0) | 2021.04.21 |