TIL

38일차

haedal-uni 2021. 10. 20. 23:52
728x90

 

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

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

 

라고 문제를 봤을 때 처음에는 그냥 

 

a = [3, 5, 6, 1, 2, 4]
print(max(a))

 

이렇게 작성을 했었다.

 

그리고 강의를 더 들으니 아래 코드에 작성을 하라고 하셨다.

 

def find_max_num(array):
    # 이 부분을 채워보세요!
    return 1


result = find_max_num(input)
print(result)

 

그래서 아까 내가 작성한 코드를 그대로 적었다.

 

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

def find_max_num(array):
    a = max(array)
    return a

result = find_max_num(input)
print(result)

 

그런데 이렇게 하는게 아니라 아래와 같이 작성을 하는 것이었다..!!

 

 

방법 1.

3을 뽑고 남은 숫자들을 비교하고 5를 뽑고 남은 숫자들을 비교하면서 큰 수를 찾아가는 것이다.

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)

 

* 이해하기 쉽게 중간에 print()를 넣어 해석해봤다.

 

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

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


result = find_max_num(input)
print(result)

 

해석 

더보기

 

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

def find_max_num(array):
    for num in array:  # 배열에 숫자를 각각 뽑아준다.
        for compare_num in array: # num과 comapre_num을 뽑으면서 배열을 반복
            if num < compare_num:  # 배열에 있는 다른 값이 비교하는 값보다 작으면
                ## num이 3이고 compare_num이 5
                ## num이 5이고 compare_num이 6
                break  # 실패!
        else:
            return num


result = find_max_num(input)
print(result)

 

 

 

방법 2.

max_num을 변수로 설정하여 변수에 가장 큰 수를 기록한다.

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

def find_max_num(array):
    max_num = array[0] # 배열의 첫번째 숫자로 max_num 지정
    for num in array :
        if num > max_num :
            max_num = num # 기록

    return max_num

result = find_max_num(input)
print(result)

 

 

 

 

 

 

728x90

'TIL' 카테고리의 다른 글

40일차  (0) 2021.10.22
39일차  (0) 2021.10.21
37일차  (0) 2021.10.19
36일차  (0) 2021.10.18
33일차  (0) 2021.10.15