문제 설명
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
제한 조건
- arr은 길이 1 이상인 배열입니다.
- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
입출력 예
arr | return |
[4,3,2,1] | [4,3,2] |
[10] | [-1] |
✅SOL_1
1
2
3
4
5
|
def solution(arr):
arr.remove(min(arr))
if len(arr)==0:
arr.append(-1)
return arr
|
cs |
리스트 arr에서 가장 작은 수 min(arr)을 찾아 제거해야 한다. remove를 사용하여 값을 찾아 삭제하도록 한다. 이때 arr에 값이 하나만 있었을 경우 가장 작은 수를 삭제하면 리스트는 빈 리스트가 되어 길이 len(arr)이 0이다. 이 경우 if문을 통해 리스트에 -1을 append한다. return은 리스트 arr자체를 반환한다.
리스트에서 del, remove, pop으로 값을 삭제할 수 있다. 먼저 위의 코드에서 사용한 remove는 삭제하고자 하는 데이터를 입력하여 삭제하도록 한다. del과 pop는 삭제하고자 하는 값의 위치(인덱스)를 입력하여 삭제하도록 한다.
a = ['하나', '둘', '셋']
위와 같은 리스트 a가 있을 때, '둘' 값을 삭제하고자 한다면 각각 아래와 같이 작성할 수 있다. '둘' 값의 인덱스는 1이기 때문에 pop과 del에서는 인덱스 1의 값을 삭제하도록 한다.
a.remove('둘')
만약 remove에 입력한 값이 리스트에 두개 이상이면 가장 앞에 있는 것을 삭제한다.
a.pop(1)
pop함수는 입력 값에 아무것도 작성하지 않고 < a.pop() >와 같이 작성하면 맨 뒤의 값을 삭제한다. 또한 pop은 뺀 인덱스의 데이터 값을 출력한다. 따라서 삭제보다는 값을 꺼낸다고 생각하면 된다.
del a[1]
del을 사용할땐 슬라이싱 기능으로 < del a[:1] >와 같이 작성하면 인덱스 0, 1의 값 부분을 전체 삭제할 수 있다
'Python 공부기록' 카테고리의 다른 글
Python _ 수박수박수박수박수? (0) | 2021.03.09 |
---|---|
Python _ 정수 제곱근 판별 (0) | 2021.03.08 |
Python _ 짝수와 홀수 (1) | 2021.03.04 |
Python _ 콜라츠 추측 (9) | 2021.03.03 |
Python _ 평균구하기 (0) | 2021.03.02 |