본문 바로가기 메뉴 바로가기

tose33

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

tose33

검색하기 폼
  • 분류 전체보기 (1296)
    • Git (11)
    • 노트 (65)
    • Web (95)
      • Docker (6)
      • AWS (3)
      • Kubernetes (14)
      • Spring Security (5)
    • 윤성우의 열헐 C++ (28)
    • PS (911)
    • 유니티 (55)
    • 학교 (9)
      • 캡스톤 (7)
    • html & css (32)
    • 알고리즘 (18)
    • 윤성우의 열혈 자료구조 (29)
    • CS 정리 (0)
      • DB (11)
      • Network (12)
      • OS (7)
      • java (0)
      • Spring (10)
      • Spring MVC (2)
  • 방명록

꼬리재귀 (1)
꼬리 재귀 (Tail Recursion)

c++로 풀었던 백준 문제를 파이썬으로 변환하다가 메모리 초과가 났다. 이유가 뭔지 찾아봤는데 이유는 다음과 같았다. 1. c++도 그렇지만 파이썬도 재귀함수를 호출하면 함수가 끝나지 않은채 함수가 또 호출되기 때문에 스택 메모리에 메모리가 계속 쌓이게 된다. 2. 그런데 나는 지금까지 c++에서 재귀 함수의 사용으로 메모리 초과를 경험한 적이 없다. (적어도 내 기억에는) 3. 이유는 바로 꼬리 재귀 (Tail Recursion) 때문 이었다. 꼬리 재귀 꼬리 재귀란 재귀 함수의 호출이 끝난 후 아무 연산을 하지 않고 바로 반환하는 재귀이다. 예를들어 다음과 같은 깊이 우선 탐색을 구현한 재귀 함수는 void dfs(int r, int c, int cnt, int dir, vector &v) { if(..

노트 2022. 4. 7. 22:04
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • DP
  • 이분탐색
  • Tree
  • 자료구조
  • C++
  • recursion
  • BFS
  • C
  • floyd warshall
  • two pointer
  • Kruskal
  • graph
  • MVC
  • priority queue
  • 조합
  • CSS
  • dfs
  • greedy
  • 재귀
  • permutation
  • binary search
  • Spring
  • Unity
  • back tracking
  • db
  • Python
  • Stack
  • Dijkstra
  • Brute Force
  • Implementation
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바