프로그래머스
[프로그래머스] 제일 작은 수 제거 하기_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가 나오는 줄을 몰랐는데 이번 문제를 풀면서 알게 되었다.
반응형