알고리즘

알고리즘과 친해지기 - 최대값 찾기

na_o 2021. 8. 9. 19:26
728x90

[알고리즘이란?]

어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합.

여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다.

[표준국어대사전]

 

-> 어떤 문제가 있을 때, 그것을 해결하기 위한 여러 동작들의 모임

    하나의 문제를 풀기 위해서는 다양한 방법이 있을 수 있다

 


[최댓값 찾기]

다음과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오.

 

 

방법 1)

각 숫자마다 모든 다른 숫자와 비교해서 최대값인지 확인한다.

만약 다른 모든 값보다 크면 반복문을 중단한다.

ex) [3, 5, 6, 1, 2, 4]

3 VS 3, 5, 6, 1, 2, 4

    -> 3 vs 3, 3 vs 5, 3 vs 6, ...

5 VS 3, 5, 6, 1, 2, 4

    -> 5 vs 3, 5 vs 5, 5 vs 6, ...

...

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

def find_max_num(array):
    for num in array:
        for compare_num in array:
            if num < compare_num:
                break
        else:
            return num

result = find_max_num(input)
print(result)

#6

 

방법2)

배열 내에서 가장 큰 수를 찾는다.

가장 큰 수를 저장할 변수를 만들고, 배열을 돌아가면서 그 변수와 비교한다.

만약 값이 더 크다면, 그 변수에 대입해준다.

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

def find_max_num(array):
    max_num = array[0]      #초기값 설정
    for num in array:
        if num > max_num:
            max_num = num
    return max_num

result = find_max_num(input)
print(result)

#6

 

'알고리즘' 카테고리의 다른 글

알고리즘 더 풀어보기 (1)  (0) 2021.08.17
점근 표기법  (0) 2021.08.15
공간 복잡도 판단하기  (0) 2021.08.13
시간 복잡도 판단하기  (0) 2021.08.11
알고리즘과 친해지기 - 최빈값 찾기  (0) 2021.08.10