본문 바로가기

재귀함수3

프로그래머스 코딩테스트 | 2단계 피보나치 수 문제풀이 (재귀함수 + 메모화로 효율성 올리기) https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오랜만에 피보나치 수열 문제 풀이를 했습니다. 처음에 간단한 재귀함수를 적용해서 풀이를 했더니 테스트는 모두 통과하는데 효율성 테스트에서 시간 초과로 계속 실패를 하는 문제가 발생했습니다. 그래서 효율성을 올리기 위해 메모화를 적용해서 풀이를 했더니 효율성 테스트도 모두 통과할 수가 있었습니다 :-) 간단하게 풀이방법을 설명해 보겠습니다! 1. 메모화 없이 기본 피보나치 수열 함수 작성하기 def.. 2024. 4. 12.
python | 재귀함수 (팩토리얼 예제) 자기 자신을 리턴하는 재귀함수! 현업에서 쓸 일은 거의 없지만, 코딩 테스트에서 자주 등장한다. 파이썬의 재귀함수에는 한계치(limit)가 있으므로 주의해서 사용한다. 기본 형태 def recursive_func(): print('재귀함수 만세!!!!!!💛') return recursive_func() recursive_func() >>> RecursionError : maximum recursion depth exceeded 어쩌구 발생 ^_^... 따라하지 마시오... 기본 예제 - 팩토리얼 함수 만들기 (1) while 반복문 이용하기 def factorial_while(n): i = 1 answer = 1 while i 2024. 4. 1.
python | 중첩리스트 평탄화 함수 작성하기 flatten function (+ 여러번 중첩되는 경우 : 재귀함수!!) 가끔 코딩 테스트에서 이거.. 리스트를 평탄화해주면 쉽게 풀 수 있겠는데? 라는 생각이 들 때가 있습니다. 프로그래머스 0단계에서는 이 평탄화 함수를 작성하는 것 자체가 문제로 출제되기도 했었던거 같기도 하구요. 어쨌든 알고 있으면(또는 외워 두면) 정말 너무나!!!! 큰 도움이 되는!!!!! 평탄화 함수 작성하는 방법!!! 정리해 봅시다. * 설명 없이 함수만 빠르게 확인하고 싶으시다면 글 맨 아래로 가세요! * 먼저, 중첩 리스트란 무엇일까요? normal_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] weird_list = [1, 2, [3], 4, 5, [6], 7, [8, 9, 10]] crazy_list = [1, 2, [[3], 4, 5], [[6], 7, [8, [9.. 2024. 4. 1.