728x90
Programmers
배열의 원소 삭제하기
https://school.programmers.co.kr/learn/courses/30/lessons/181844
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
코드
<틀린 풀이>
- 38.5 / 100
def solution(arr, delete_list):
answer = []
for i in arr:
if i in delete_list:
arr.remove(i)
return arr
<정답 풀이>
def solution(arr, delete_list):
answer = []
for i in delete_list:
if i in arr:
arr.remove(i)
return arr
차이점
틀린 풀이의 함수에서는 주어진 delete_list에 있는 요소들을 arr에서 제거하는 대신에, delete_list에 있는 요소가 arr 안에 있는지 확인한 후에만 제거한다. 따라서 중복되는 요소가 있다면 delete_list에 있는 요소가 하나만 제거된다. 예를 들어, arr이 [1, 2, 2, 3, 4]이고 delete_list가 [2, 3]이라면, 첫 번째 함수는 arr을 [1, 2, 3, 4]로 변경한다.
정답 풀이의 함수에서는 arr의 각 요소를 반복하면서, 그 요소가 delete_list 안에 있는지 확인하고 있다. 그 후에 해당 요소를 제거하고 있다. 이 경우에는 arr의 모든 요소에 대해 확인하고 제거하기 때문에, delete_list에 있는 요소가 arr에 중복되어 있더라도 모든 중복된 요소가 제거된다. 위의 예에서 두 번째 함수는 arr을 [1, 4]로 만든다.
Reference
728x90
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 찾기 - 파이썬 (0) | 2024.04.01 |
---|---|
[프로그래머스] 부분 문자열인지 확인하기 - 파이썬 (0) | 2024.03.28 |
[프로그래머스] 0 떼기 - 파이썬 (0) | 2024.03.28 |
[프로그래머스] 문자열 정수의 합 - 파이썬 (0) | 2024.03.28 |
[프로그래머스] 전국 대회 선발 고사 - 파이썬 (0) | 2024.03.28 |