level 1. 제일 작은 수 제거하기
05 Mar 2017 | 알고리즘 프로그래밍level 1. 제일 작은 수 제거하기
문제
rm_small함수는 list타입 변수 mylist을 매개변수로 입력받습니다. mylist 에서 가장 작은 수를 제거한 리스트를 리턴하고, mylist의 원소가 1개 이하인 경우는 []를 리턴하는 함수를 완성하세요. 예를들어 mylist가 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10, 8, 22]면 [10, 22]를 리턴 합니다.
풀이 (python)
# 풀이1
def rm_small(mylist):
mylist.remove(min(mylist)) #min() - O(N) 시간복잡도
return mylist
# 풀이2 - filter 사용
def rm_small(mylist):
return list(filter(lambda x: x > min(mylist), mylist))
# 풀이3
def rm_samll(mylist):
return [i for i in mylist if i > min(mylist)]
# 아래는 테스트로 출력해 보기 위한 코드입니다.
my_list = [4, 3, 2, 1]
print("결과 {} ".format(rm_small(my_list)))
배운점
- min(), max() 함수를 이용하면 인수로 반복 가능(iterable)한 자료형을 입력받아 그 최소값, 최대값을 리턴한다.
- iterable 의 의미는 member를 하나씩 차례로 반환 가능한 object를 말한다.
- iterable 의 예로는 sequence type인 list, str, tuple,dic 이 대표적이다.