728x90
리스트에서 가장 큰 값 구하기
하위 문제: 리스트의 마지막 값 제외 나머지의 최댓값을 구함 -> 그 값과 리스트의 마지막 값과 비교
베이스 케이스: 리스트의 길이가 1 이하일 때 len(arr) <= 1
재귀 케이스: 리스트의 길이가 2 이상일 때
def maxReturn(arr):
if len(arr) <= 1:
return arr[0]
if maxReturn(arr[:-1]) < arr[-1]:
return arr[-1]
else :
return maxReturn(arr[:-1])
+리스트에서 가장 작은 값 리턴
하위 문제: 리스트의 마지막 값 제외 나머지의 최솟값을 구함 -> 그 값과 리스트의 마지막 값과 비교
베이스 케이스: 리스트의 길이가 1개 이하일 때 len(arr) <= 1
재귀 케이스: 리스트의 길이가 2개 이상일 때
def minReturn(arr):
if len(arr) <= 1:
return arr[0]
if minReturn(arr[:-1]) > arr[-1]:
return arr[-1]
else :
return minReturn(arr[:-1])
테스트를 위한 리스트 생성
random함수의 randint를 사용하여 랜덤으로 값을 생성하여 리스트에 추가해보겠습니다.
//randint 함수만 불러오기
from random import randint
//빈 리스트 생성
rand_arr = []
//-10부터 10 사이의 정수를 가진 6개의 값을 가진 리스트 만들기
for i in range(6):
num = randint(-10, 10)
rand_arr.append(num)
//리스트 출력
print(rand_arr)
//최댓값 출력
print(f"최댓값: {maxReturn(rand_arr)}")
//최솟값 출력
print(f"최솟값: {minReturn(rand_arr)}")
출력>
[4, 9, -6, 2, 3, 3]
최댓값: 9
최솟값: -6
랜덤 함수를 사용했기 때문에 리스트의 값은 항상 달라집니다!
'Python' 카테고리의 다른 글
Python에서 엑셀, csv 다루기 (1) | 2024.01.13 |
---|---|
웹 스크래핑 (1) | 2024.01.13 |
알고리즘 패러다임 (0) | 2023.11.18 |
[Python] 코드잇 숫자 맞히기 게임 (0) | 2023.09.18 |
[Python] 1부터 n까지 원하는 값의 개수 찾기 (0) | 2023.05.25 |