[프로그래머스 / lv.1] 제일 작은 수 제거하기
in Problem Solving on Programers
날짜: 2021년 5월 16일
소요 시간: 21분 56초
카테고리: 수학문제
태그: 레벨1
, 파이썬
입출력 예시
arr | return |
---|---|
[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[]) 함수를 알지 못해 코드가 길어졌다. 사실은 반복을 쓸 필요도 없는 문제였다.
- 리스트 안에 반복문 조건문을 삽입 할 수 있다는 점을 몰랐다.
- 함수의 활용 등의 전반적인 파이썬 언어에 대한 이해도를 높일 필요가 있다.