스파르타 코딩클럽/1주차

max값 구하기

코딩쪼앙 2022. 3. 13. 13:53

첫 번째 방법

input에 들어있는 숫자를 for문을 한 번 더 돌려서 차례대로 비교해가는 방식

ex)3 <- 5,6,1,2,4     5 <- 3,6,1,2,4 ....

input = [3, 5, 6, 1, 2, 4]


# 앞 뒤 숫자 비교 해서 큰 수
def find_max_num(array):
    for num in array:
        for compare in array:
            if num < compare:
                break
        else:
            return num


result = find_max_num(input)
print(result)

num과 compare 값을 비교해서 비교하는 숫자인 compare값이 더 클 경우 num을 array의 다음 값으로 변경한 후, 다시 이러한 과정을 반복한 후, for문이 한 번도 멈추지 않을 경우 가장 큰 수 이므로 그 값을 반환해준다.

O(n²)으로 코드를 좀 더 개선 할 수 있다

 

두 번째 방법

최대 값을 변수에 지정해 놓고 그 값보다 큰 수가 생기면 그때그때 최대 값을 변경해 준 후 마지막에 출력해주는 방식

input = [3, 5, 6, 1, 2, 4]

# max 값을 넣어 놓고 더 큰 수가 있을 경우 max 값 수정
def find_max_num(array):
    max_num = array[0]
    for num in array:
        if max_num < num:
            max_num = num

    return max_num

result = find_max_num(input)
print(result)

3보다 5가크므로 최대 값은 5로 바뀌고, 그 후 num을 6일 때 최대 값은 6이므로 max넘을 6으로 변경해준다.

그 후 이와 같은 과정을 반복해서 max_num에 들어가는 숫자를 반환해준다.