반응형
문제 설명: 정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤ arr의 길이 ≤ 100
- 1 ≤ arr의 원소 ≤ 1,000
- arr의 원소는 모두 서로 다릅니다.
- 1 ≤ delete_list의 길이 ≤ 100
- 1 ≤ delete_list의 원소 ≤ 1,000
- delete_list의 원소는 모두 서로 다릅니다.
문제 해결
def solution(arr, delete_list):
for delete in delete_list:
if delete in arr:
arr.remove(delete)
return arr
def solution(arr, delete_list):
return [ar for ar in arr if ar not in delete_list]
def solution(arr, delete_list):
target_set = set(delete_list) # set()은 집합이므로 찾는 최악 시간 복잡도가 O(1)임.. 그래서 훨씬 빠름
return [ar for ar in arr if ar not in target_set]
주석: .remove(값)은 배열에서 해당 값을 삭제하는 것(가장 처음마주하는 것만, 단 제약조건으로 모든 원소는 다르기 때문에 가능!), 시간 복잡도는 O(N)임.
반응형
'코딩_Python(Level.0)' 카테고리의 다른 글
| [Level.0] 0 떼기 (1) | 2026.03.12 |
|---|---|
| [Level.0] 꼬리 문자열 (0) | 2026.03.12 |
| [Level.0] 문자열 바꿔서 찾기 (0) | 2026.03.12 |
| [Level.0] 숫자 찾기 (0) | 2026.03.11 |
| [Level.0] l로 만들기 (0) | 2026.03.11 |