codekata

[프로그래머스] #29 제일 작은 수 제거하기 (remove함수)

kinggoddino 2024. 7. 30.

▶ 문제

정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수 solution 완성하기. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하기.

ex) arr이 [4, 3, 2, 1] 인 경우는 [4, 3, 2] 리턴

ex) arr이 [10] 이면 [-1] 리턴

 

▶ 제한조건

arr은 길이 1 이상인 배열

인덱스 i, j에 대해 i ≠ j 이면 arr[i] arr[j]

 

 풀이

def solution(arr):
    answer = arr.remove(min(arr))
    if answer:
        return answer
    return [-1]
    
# 실행한 결괏값 [-1]이 기댓값 [4,3,2]과 다릅니다.

틀림..

 

모든 값이 다 [-1]로 나온다..ㅜ

 

찾아본 결과

remove() 함수는 특정 요소를 제거한 후, 아무 값도 반환하지 않는다.

그래서 answer에는 항상 None이 저장되니

모든 answer를 False로 판단되고 있었다.

 

remove()로 최소값 요소를 제거한 후에 리스트를 그대로 반환하기!

def solution(arr):
    arr.remove(min(arr))
    if arr:
        return arr
    return [-1]

통과!