본문 바로가기
알고리즘/프로그래머스

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

by 며루치꽃 2020. 12. 25.

1. 문제

programmers.co.kr/learn/courses/30/lessons/12935

 

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

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

programmers.co.kr

2. 내가 생각했던 풀이과정

1) 배열을 입력받는다

2) 입력받은 배열의 원소중에 가장 작은 원소를 찾기위해 min() 함수를 이용하여 배열의 가장 작은 값을 찾는다.

3) 배열의 가장 작은 원소를 remove() 함수를 이용해 원소를 제거한다 .

4) 문자열 길이가 1보다 크면 배열을, 작으면 [-1] 을 리턴한다. [-1]을 리턴한 이유는 false를 넣으면 오답으로 처리되었기 때문이다.

3. 나의 풀이

arr = list(map(int, input().split()))

def solution(arr):
    arr.remove(min(arr))
    if int(len(arr)) >= 1:
        return arr
    else:
        return [-1]

4. 다른 사람의 풀이

def rm_small(mylist):
    del mylist[mylist.index(min(mylist))]
    return mylist

remove() 대신에 del을 이용해서 배열의 가장 작은 원소를 index로 찾아 처리하였다.

5. 새로 알게된 점

list의 원소를 삭제하는 방법

1) del 키워드를 통한 삭제

>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> del a[1]
>>> a
[1, 3, 4, 5, 6, 7]

2) list의 remove 메소드에 의한 삭제 

list.remove(찾을아이템)

 

3) del키워드와 리스트의 index메소드와 혼합하여 사용

>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> del a[a.index(3)]
>>> a
[1, 2, 4, 5, 6, 7]

 


  • 참고

리스트 원소 추가 삭제: wikidocs.net/16040

 

 

 

댓글