재귀의 이해 - 코딩테스트용/
클래스 심화 - 메서드 오버라이딩, 추상클래스/ 코딩 테스트에서는 필요없음/ 장고엔 필요
코딩 테스트에서는 모르면 손도 못대는 문제 유형들이 많다.
bfs/dfs <<< 재귀
정렬 <<< 재귀
트리에서 모든 노드 방문 << 재귀로 구현
재귀는 스스로를 호출하는 함수
리턴값이 있는 경우, 없는 경우가 있다.
재귀함수를 작성할 때 유의할 점 ,
1. 모든 재귀함수는 반복문으로 구현가능 왜 씀? 코드가 짧으니까
2. 종료 조건. 끝도 없이 호출되어서는 안된다, 언젠가는 실행이 멈추어야 함
시간, 공간, 메모리 제한
Recursion Error 재귀횟수가 1000번을 넘으면 에러
최대 재귀 깊이 : 재귀함수를 최대로 호출할 수 있는 횟수 파악
재귀 문제 유형: 재귀로 코드를 쉽게 짜는 것을 어떻게 눈치챌 수 있을까?
1. 문제 푸는 전체과정을 펼쳐 생각해보았을 때
2. 문제 풀이 과정일부분이 문제푸는 전체 과정과 유사 할 경우
즉 비슷한 논리가 꼬리에 꼬리를 무는 형태로 이루어져 있어\
def (n):
return 0 1 1 2 3 5 8
이번 과제 : 재귀함수 파스칼의 삼각형
a = []
1
1 1
12 1
1 3 3 1
메서드 오버라이딩
추상클래스 (Abtract Class)
메서드 오버라이딩: 파생클래스에서 상위 클래스의 메서드와 이름은 같지만 다른 기능을 수행 하도록 재정의
추상 클래스: 자체적으로 객체를 생성할 수 없고 , 상속받는 클래스에서 마저 만들라고 하는 클래스
인터페이스만 정의한 클래스가 많다.