프로그래머스

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

미스터 한뺑 2023. 4. 14. 17:07
반응형

1. 문제

 

1 - 1. 문제 설명

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

 

 

1 - 2. 제한사항

  • arr은 길이 1이상인 배열입니다
  • 인덱스 i,j에 대해 둘다 같지 않다면 arr[i] 과 arr[j]는 같지 않습니다.

2. 문제해결방법

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

1. 먼저 arr이 리스트인 것을 확인하고 값을 제거할수 있는 메소드가 뭐가 있는지 확인을 했다. remove메소드를 이용하겠다라는 걸 확인

2.  조건문을 사용해 remove메소드를 사용해여 제일 작은 수를 제거 후 빈 리스트면 [-1]를 반환하고 그게 아니면 arr[:(len(arr))]를 반환하는 코드이다.

 

 

**remove**

- 리스트 안에 항목을 제거할 수 있는 메소드

- 리스트에서 항목을 값을으로 삭제하며, 인덱스 번호로는 삭제하지 않는다

일반문법

list_name.remove(value)

- list_name은 리스트이름

- value는 리스트 안에 있는 값(인덱스 번호 삭제X)

- 제거된 값을 반환하지 않고 그 대신 반환 값이 없다는 뜻의 none반환

 

** 만약에 인덱스 번호를 통해 리스트 값을 제거하고 싶다면 pop()메소드를 사용한다.

 

 

4. 느낀점 

조건문에서 조건이 int , string, bool 말고 빈 리스트 (  []  )도 조건식에 넣으면 True , Fasle가 나오는 줄을 몰랐는데 이번 문제를 풀면서 알게 되었다.   

반응형