일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 리트코드
- SQL 고득점 Kit
- 타입스크립트
- 알고리즘
- 제로초
- 코드스테이츠
- 회고
- 리액트
- LeetCode
- 4주 프로젝트
- codestates
- 렛츠기릿 자바스크립트
- 백준
- programmers
- 타입스크립트 올인원
- Async
- python
- 토익
- til
- 정재남
- 자바스크립트
- 타임어택
- js
- 프로그래머스
- 손에 익히며 배우는 네트워크 첫걸음
- 파이썬
- javascript
- 코어 자바스크립트
- 리덕스
- 2주 프로젝트
Archives
- Today
- Total
Jerry
[leetcode][파이썬]Remove Element #008 본문
반응형
https://leetcode.com/problems/remove-element/
.
오늘풀어본 문제는 " Remove Element " 이다.
주어진 리스트 안에 있는 숫자형 원소들 중 주어진 값(val)과 다른 값을 in-place 방식으로 구현해주는 문제이다.
풀이1 - Two Pointer
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
slow = 0
for fast in range(len(nums)):
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
return slow
풀이순서
1. 주어진 리스트의 첫번째 값부터 접근하기 위해 slow = 0 을 할당2
2. for문을 이용해 리스트 긺이만큼 순환해주기
- 인덱스명은 fast
2-1. fast 인덱스에 있는 오소가 주어진 값(val)과 다를 대, slow 인덱스 위치 원소와 swap 교체
2-2. 다음 위치로 이동하기 위해 slow에 + 1
3. for문 종료 후, 조건에 맞는 요소 개수 = slow 이동 횟수이므로, slow 반환
풀이2 - 리스트 컴프리헨션
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
nums[:] = [num for num in nums if num != val]
return len(nums)
풀이순서
1. 리스트 컴프리헨션을 이용해 nums의 요소와 val이 일치하지 않는 요소만 남도록 함
2. nums의 길이 반환
반응형
'Problem Solving > Algorithm 문제 풀기' 카테고리의 다른 글
[leetcode][파이썬]Remove Duplicates from Sorted Array #007 (0) | 2024.05.22 |
---|---|
[leetcode][파이썬]Merge Two Sorted Lists #006 (0) | 2024.05.22 |
[leetcode][파이썬]Valid Parentheses #005 (0) | 2024.05.22 |
[leetcode][파이썬]Longest Common Prefix #004 (0) | 2024.05.21 |
[leetcode][파이썬]Roman to Integer #003 (0) | 2024.05.20 |