제일 작은 수 제거하기 - Python

2023. 10. 11. 10:02공부/📝 프로그래머스

1. 풀이 코드

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


# Test Cases
print(solution([4, 3, 2, 1]))
print(solution([10]))

  위와 같이 풀었습니다.

 

2. 틀린 코드

def solution(arr):
    return [item for item in arr if item != min(arr)] or [-1]


# Test Cases
print(solution([4, 3, 2, 1]))
print(solution([10]))

  처음에 이렇게 하니까 min(arr)을 매번 계산해야하므로 시간초과가 떴습니다. 편하자고 min()을 썼다가 틀린 코드가 되었네요.

 

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


# Test Cases
print(solution([4, 3, 2, 1]))
print(solution([10]))

    위의 코드 또한 틀렸습니다. remove()를 통해 해당 리스트에서 값을 제거합니다. 그러나 이 경우 반환값이 None이기 때문에 항상 거짓이 되어 [-1]을 리턴하더라구요. 한 가지 배웠습니다.

 


 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr