최댓값 찾기
문제) 주어진 숫자 n개 중 가장 큰 숫자를 찾는 알고리즘을 만들어라.
#최댓값 구하기
#입력 : 숫자가 n개 들어 있는 리스트
#출력 : 숫자 n개 중 최댓값
def find_max(a):
n = len(a)
max_v = a[0]
for i in range(1, n):
if a[i] > max_v:
max_v = a[i]
return max_v
v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_max(v))
#계산 복잡도 : O(n)
응용하기) 리스트에 숫자가 n개 있을 때 가장 큰 값이 있는 위치 번호를 알려주는 알고리즘을 만들어라.
#최댓값의 위치 구하기
#입력 : 숫자가 n개 들어 있는 리스트
#출력 : 숫자 n개 중에서 최댓값이 있는 위치
def find_max_idx(a):
n = len(a)
max_idx = 0
for i in range(1, n):
if a[i] > a[max_idx]:
max_idx = i
return max_idx
v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_max_idx(v))
연습문제
2-1) 숫자 n개를 리스트로 입력받아 최솟값을 구하는 프로그램을 만들어라.
def find_min(a):
n = len(a)
min = a[0]
for x in range(1, n):
if min > a[x]:
min = a[x]
return min
v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_min(v))
출처
모두의 파이썬&알고리즘 합본호 / 이승찬 / 길벗 / 2018-12-10