[알고리즘 자습]재귀(recursive) 함수 - N까지의 합, 거듭제곱, 구구단, 팩토리얼 등 예제- Python3
알고리즘을 공부하는 사람은 누구나 한번쯤 재귀함수에 대해 들어봤을 것이다. 그러나, 재귀적인(recursive) 방법은 코드가 직관적이긴 하나, 디버깅이 힘들고, 그 아이디어를 짜는 것이 생각보다 힘들다보니 보통은 반복적인(iterative) 방법으로 코드를 작성한다. 그리고 속도도 일반적으로 재귀보다는 반복이 빠르다고 하니, 굳이 재귀를 써야 하나 싶다. 그러나, 재귀를 사용할 경우 반복으로 해결할 때 문제가 너무 복잡해지는 것을 예방할 수 있다. 그런 측면에서, 코딩 테스트 준비생들에게는 꼭 알아야 할 방법이라 할 수 있다. 재귀함수란? 재귀함수란, 어떤 함수 func(n)이 있다고 할 때, 이 함수의 내부에서 자기 자신을 호출하는 함수를 말한다. 보통의 재귀함수의 구성은 다음과 같다. def sol..
[프로그래머스 동적계획법/DP]정사각형 찾기 - Python3
문제 https://programmers.co.kr/learn/courses/18/lessons/1879 알고리즘 문제 해설 - 가장 큰 정사각형 찾기 | 프로그래머스 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr 1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사각형을 찾아 넓이를 return 하는 solution 함수를 완성해 주세요. (단, 정사각형이란 축에 평행한 정사각형을 말합니다.) 예를 들어 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 가 있다면 가장 큰 정사각형은 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 가 되며..