제일 작은 수 제거하기

sky·2022년 3월 14일

Programmers Lv.1(Python)

목록 보기
2/28
post-thumbnail

📕프로그래머스 코딩테스트 Level 1 (Python3)


문제 설명

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

망한 solution

def solution(arr):
    answer = []
    if not arr: 
            answer.append(-1)
    else:
        min_arr = min(arr)
        arr.remove(min_arr)
        answer = arr
    if 10 in arr:
        answer.append(-1)
    return answer

주어진 테스트는 통과했으나 시험 제출은 되지 않았다. 62.5/100점을 맞았는데 이렇게만 봐도 굉장히 복잡하고 알 수 없는 코드다. 주어진 것만 생각하다 보니 이러한 결과가 나온 듯 하다.

another solution

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

여러번 수정했는데도 오류를 못 찾겠어서 결국 구글링의 힘을 빌려 다시 작성했다. 쓸데없는 걸 제거하면 이렇게 간단한 코드가 나오는데 그걸 몰랐다...

📜코드 해석

  • arr.remove() : 배열 원소를 제거하는 함수
  • min(arr) : 배열의 최소값을 찾는 함수
  • append() : 배열이나 리스트에 원소를 추가해주는 함수

⏱total time

  • 2022-03-14 / 20:30 - 21:20

⚙ 리뷰

조금은 간단하게 생각을 해봐도 되지 않을까... 무조건 if문을 쓸 필요는 없다는 것.

새로 알게 된 코드

  • del : 인덱스로 삭제
  • del arr[3:] : 여러 개의 요소를 삭제
profile
개발자가 되고 싶은 1人

0개의 댓글