카테고리 없음

재귀, 클래스

김은수2 2023. 4. 26. 17:59

재귀의 이해 - 코딩테스트용/ 

 

클래스 심화 - 메서드 오버라이딩, 추상클래스/ 코딩 테스트에서는 필요없음/ 장고엔 필요

 

 

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

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)

 

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

 

추상 클래스: 자체적으로 객체를 생성할 수 없고 , 상속받는 클래스에서 마저 만들라고 하는 클래스 

인터페이스만 정의한 클래스가 많다.