루나의 TIL 기술 블로그

프로그래머스 level 1 작은수 제거하기

|

작은수 제거하기

문제 설명

정수를 저장한 배열, 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가 왜 또 들어갈까?