
💻 프로그래머스 - 제일 작은 수 제거하기 문제
👉 문제 보러 가기🧩문제 설명
🧩문제 요약
- 입력: 정수 배열 arr (길이 1 이상, 모든 요소는 서로 다름)
- 요구사항:
- 가장 작은 수 하나를 제거한 배열을 반환
- 만약 배열의 길이가 1이면, [-1]을 반환
- 예시:
- arr = [4, 3, 2, 1] ➝ [4, 3, 2]
- arr = [10] ➝ [-1]
🔍 풀이 코드
def solution(arr):
if len(arr) == 1:
return [-1]
min_value = min(arr)
arr.remove(min_value)
return arr
✅ min_value = min(arr)
- min() 함수는 리스트에서 가장 작은 값을 찾아줍니다.
- 예를 들어 arr = [4, 3, 2, 1]이면 min(arr)는 1을 반환합니다.
- 이렇게 찾은 최솟값을 min_value 변수에 저장해 둡니다.
✅ arr.remove(min_value)
- remove() 함수는 리스트에서 처음 등장하는 특정 값을 제거합니다.
- 이 경우에는 min_value를 제거하게 되므로, 가장 작은 값이 리스트에서 사라집니다.
- arr = [4, 3, 2, 1]
min_value = 1
arr.remove(1)을 하면 arr = [4, 3, 2]로 바뀝니다.
✨ 마무리 정리
- 리스트 관련 주요 함수
min() | 가장 작은 값 반환 |
max() | 가장 큰 값 반환 |
remove() | 값 하나 제거 |
pop(), del | 인덱스로 제거 |
sorted() | 정렬된 새 리스트 만들기 |
sort() | 원본 리스트 정렬 |
index() | 특정 값의 위치 찾기 (괄호안 숫자의 인덱스를 반환) |
clear() | 리스트 전체 초기화 (리스트를 비움) |
✅ pop()
- 기능: 특정 인덱스의 요소를 삭제하고 반환
arr = [3, 1, 5]
print(arr.pop()) # 5 (기본은 마지막 요소)
print(arr) # [3, 1]
print(arr.pop(0)) # 3
print(arr) # [1]
✅ del
- 기능: 인덱스를 사용해 요소를 삭제 (pop()처럼 반환은 안 함)
arr = [3, 1, 5]
del arr[1]
print(arr) # [3, 5]
✅ sort()
- 기능: 리스트를 정렬(기본값은 리스트를 오름차순으로 정렬)
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # [1, 2, 5, 9]
- 내림차순 정렬을 위해서는 (reverse = True) 사용
numbers = [5, 2, 9, 1]
numbers.sort(reverse = True)
print(numbers) # [9, 5, 2, 1]
- 원본리스트를 유지하고 싶으면 sorted() 사용
# 예시
a = [3, 1, 2]
# sort()
a.sort()
print(a) # [1, 2, 3]
# sorted()
b = [3, 1, 2]
c = sorted(b)
print(b) # [3, 1, 2] (원본 유지)
print(c) # [1, 2, 3] (정렬된 복사본)
📌 아직 배우는 중이라 부족한 부분이 있을 수 있습니다.
혹시 잘못된 내용이나 더 나은 방법이 있다면 알려주세요 🙏
감사합니다! 😄
'Languages > Python' 카테고리의 다른 글
[프로그래머스] n의 배수 고르기 (python) (0) | 2025.04.24 |
---|---|
[프로그래머스] 특정 문자 제거하기 (python) (0) | 2025.04.23 |
[프로그래머스] 문자열 내림차순으로 배치하기 (python) (1) | 2025.04.18 |
[프로그래머스] 약수의 개수와 덧셈 (python) (0) | 2025.04.18 |
[프로그래머스] 수박수박수박수박수박수? (python) (0) | 2025.04.17 |