프로그래머스 level 1 작은수 제거하기
15 Jun 2021 | 기초 프로그래머스 질문 TIL문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제출 답안
def solution(arr):
if len(arr) == 1:
return [-1]
else:
arr.pop(arr.index(min(arr)))
#처음에 index를 빼먹었다.
return arr
arr.pop 은 리스트의 마지막 인수를 제거한다.
모범 답안
def rm_small(mylist):
return [i for i in mylist if i > min(mylist)]
리스트에서 중에서 제일 작은 수 보다 큰 수들이 들어있는 배열을 출력한다.
주요 포인트 및 생각해볼 점
arr.pop 은 리스트의 마지막 인수를 제거한다.
arr.pop(x)는 리스트의 x번째 인수를 반환하고 원래 리스트에서 그 요소는 삭제한다.
arr.remove(x)는 리스트에서 x를 찾아서 제거한 새 리스트를 만들기 때문에 값을 반환하지도 않고 원래 리스트에서 x를 삭제하지도 않는다.
질문
arr.pop(arr.index(x)) 여기에서 중간에 arr가 왜 또 들어갈까?