ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL 2023.04.26
    내일배움캠프 2023. 4. 26. 20:33

    오늘 새롭게 알게된 것

     

    for 문도 break와 else를 쓸 수 있다.

     

    def find_prime_list_under_number(number):
        answer = []
    
        for i in range(2, number+1):
            for j in answer:
                if i % j == 0 and j*j <= i:
                    break
            else:
                answer.append(i)
    
        return answer

    예를 든 코드는 number 이하의 수 중 소수만 추려내는 함수이다.

    두 번 째 for 문 안에 if 문이 있고 그 조건에 맞는다면 break으로 for 문을 종료한다.

    여기서 else 를 같이 써주면 만약 for 문이 break로 종료된게 아니라면 else로 빠지게 된다.

    그렇게 두 번 째 for 문에서 모든 j 가 조건에 충족되지 않고 끝난다면 밑의 else 가 실행되는 것이다.

     

     

    선발대에서 배운 것

     

    재귀함수

    스스로 호출하는 함수

    장고 개발할 때에는 크게 필요가 없다

    코딩 테스트에서는 모르면 손도 못 대는 중요한 문제 유형들이 많다

    lfs/dfs, 정렬, 중/전/후위 순회

     

    리턴값이 없는 재귀 함수

    리턴값이 있는 재귀 함수

    4 + 3 + 2 + 1 + 0 

     

    작성 시 유의할 점

    1. 모든 재귀 함수는 반복문 구현 가능 왜? 코드가 짧기 때문 효율적이기 때문
    2. 종료 조건. 끝도 없이 호출되어서는 안된다. 언젠가는 실행이 멈추어야 함
      종료 조건이 잘못됐다면 RecursionError

     

    최대 지귀 깊이(maximum recursion depth): 재귀함수를 최대로 호출할 수 있는 횟수 파악

    print(sys.getrecursionlimit())

     

    재귀 문제 유형: 재귀로 코드를 짤 수 있다는 것을 어떻게 눈치챌 수 있을까?

    1. 문제푸 는 전체 과정을 펼쳐 생각해보았을 때
      문제 풀이 과정의 일부분이 문제를 푸는 전체 과정과 유사하다
    2. 즉 문제 풀이 과정에서 비슷한 논리가 꼬리에 꼬리를 무는 형태로 이루어져 있음

     

    재귀로 풀 수 있을까?

    ?

    를 항상 생각하라

     

    메서드 오버라이딩(Method Overriding)

    파생 클래스에서 상위 클래스의 메서드를 재정의 하는 것 

    파생 클래스에서 상위 클래스의 메서드와 이름은 같지만 다른 기능을 수행하도록 재정의 하는 것

    상위 클래스에서 구현된 기능을 파생 클래스에서 필요에 따라 수정하거나 추가해서 사용할 있다.

     

    추상 클래스(Abstract Class)

    자체적으로 객체를 생성할 수 없고, 상속받는 클래스에서 반드시 구현해야 하는 메서드를 가진 클래스

    (상속하여 하위 클래스에서 구현해야 하는 클래스)

    , 인스턴스를 생성할 없는 클래스

    '내일배움캠프' 카테고리의 다른 글

    TIL 2023.04.28  (0) 2023.04.28
    TIL 2023.04.27  (0) 2023.04.27
    TIL 2023.04.25  (0) 2023.04.25
    TIL 2023.04.24  (0) 2023.04.24
    WIL 내일배움캠프 6주차  (0) 2023.04.21
Designed by Tistory.