UNIT 02 (기초)

정우석·2024년 3월 28일

최댓값 찾기

문제) 주어진 숫자 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

0개의 댓글