[프로그래머스 / lv.1] 제일 작은 수 제거하기


날짜: 2021년 5월 16일
소요 시간: 21분 56초
카테고리: 수학문제
태그: 레벨1, 파이썬

코딩테스트 연습 - 제일 작은 수 제거하기

입출력 예시

arrreturn
[4,3,2,1][4,3,2]
[10][-1]

내가 적은 코드

def solution(arr):
    k = arr[0]
    if len(arr) == 1:
        arr[0] = -1
    else:
        for i in range(1,len(arr)):
            if k > arr[i]:
                k = arr[i]
                i += 1
        arr.remove(k)
    answer = arr
    return answer

풀이 과정

arr안의 원소들을 차례로 비교하며 가장 작은 수를 찾아 내서 remove함수로 지우도록 만들었다.
정렬 알고리즘과 가깝게 풀려고 했었던 것 같다.

베스트 코드

def rm_small(mylist):
    return [i for i in mylist if i > min(mylist)] or [-1]

내 생각에 가장 직관적인 코드

def rm_small(mylist):
    mylist.remove(min(mylist))
    return mylist

# 빈 리스트와 리스트 원소가 1개일 때는 고려하지 않은 코드

반성

  • min(array[]) 함수를 알지 못해 코드가 길어졌다. 사실은 반복을 쓸 필요도 없는 문제였다.
  • 리스트 안에 반복문 조건문을 삽입 할 수 있다는 점을 몰랐다.
  • 함수의 활용 등의 전반적인 파이썬 언어에 대한 이해도를 높일 필요가 있다.




© 2021. by hminkim