TIL - 22.11.09(파이썬 알고리즘)

0

TIL

목록 보기
8/126

배운거

알고리즘

알고리즘이란 쉽게말해 문제가 있다면 그것을 해결하기 위한 여러 동작들의 모임이다.
코드의 구현력을 올리기 위해, 코딩 시간을 단축하기 위해 필요하다.

알고리즘을 쉽게 하기 위해선 코드를 직접 짜보기 전에 한글로 어떻게 진행할 것인지 먼저 써보고, 그러고 나서 코드에 대한 고민을 하는 것이 좋다.
개인적으로 듣고나서 생각해보니 당연한 말이라서 가장 마음에 와닿았던 말이었다.

항상 '왜?'라는 궁금증을 가지고 쉽고, 빠르고, 간결하게(파이썬이 시간이 짧게 걸린다.) 프로그래밍을 하는 것이 중요.

할당연산자 & 비교연산자

강의를 듣던 중 '='와 '=='의 차이를 명확하기 구분하지 못해 연습문제에서 실수를 하였다.
팀원들과 구글링을 통해 연산자에 대해 확인해보니
'='는 할당연산자로 단순히 우변을 좌변에 할당하는 것이고,
'=='는 비교연산자로 두 객체의 값이 같은지 비교하여 true or false로 출력되는 것을 말한다.
생각보다 간단한 이론인데

들여쓰기 & 디버깅

알고리즘 1-4 강의를 듣고, 튜터님의 설명도 들은 후 이해는 되었지만 else가 붙는 줄의 위치가 왜 두번째 for문에 붙는지 이해가 안되었다.

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

내 생각에는 else가 첫번째 for문에 붙어야 return값으로 들어온다 생각되었고, 튜터님께 문의하여 파이참의 '디버그' 기능에 대해서도 알게되었다.

사진과 같이 왼쪽에 빨간색으로 된 스레드를 찍고 디버그를 돌려보면
함수가 진행되는 순서를 보여준다.(치트키다)

:만약 첫번째 for문에 'else'가 걸리게된다면
'break'가 'false'일 때 'else'로 넘어가야되는데 첫번째에 'else'가 걸려있어 다시 첫번째 for문이 수행되게되고 그래서 'index'의 마지막인 '4'가 return값으로 나오게된다.

알고리즘 - 최댓값 찾기 두번째 방법

지정 변수(max_num = array[])를 지정

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)

일기

사실 오늘 강의 목표는 알고리즘 2-6강까지였지만, 초반 부분에 막히기도했고 궁금증이 커서 튜터님과 팀원들의 도움으로 'break'와 '디버깅'에 대해 알게되었다.
디버깅은 코드를 해석하는데에 생각보다 엄청나게 도움이 될거같은 꿀팁인거같다.
비록 오늘 강의 진도는 많이 못나갔지만, 오늘 고민하던걸 해결하고 이해하고 설명까지 가능할 정도가 되니 만족한다.

0개의 댓글