[Leetcode] 27. Remove Element
https://leetcode.com/problems/remove-element/description/
설계 (소요시간: 15분)
- two pointers
- T= O(N)
- S=O(1)
- edge case : # of V > # of !V
- termination condition : lp >= rp
제출 답안지 (소요시간: 5분)
def removeElement(self, nums: List[int], val: int) -> int:
lp = 0
rp = len(nums)-1
while lp < rp:
while nums[lp] != val:
lp+=1
if lp == len(nums)-1:
break
while nums[rp] == val:
rp-=1
if rp == 0:
break
if nums[lp] == val and nums[rp] != val:
nums[lp] = nums[rp]
nums[rp] = '_'
return rp+1
검산 (소요시간: 13분)
제출
![[blog/images/blog/_posts/2025-03-07-leetcode-27-remove-element/IMG-20250307094733194.png]]
![[blog/images/blog/_posts/2025-03-07-leetcode-27-remove-element/IMG-20250307094733194.png]]
obsidian://open?vault=Life&file=blog%2Fimages%2Fblog%2F_posts%2F2025-03-07-leetcode-27-remove-element%2FIMG-20250307094733194.png
결과 : Wrong Answer
느낀점
이번에 느낀점은, 생각보다 설계가 중요하다는 것
그리고 손으로 검산하는게 생각보다 중요하다는 것
특별히 배운 자료 구조는 없다!
댓글남기기