함수의 활용

09Roalwlzm01·2023년 12월 2일
0

Python

목록 보기
34/36

팩토리얼 (계승)

  • n보다 작거나 같은 모든 양의 정수의 곱
  • 반복문으로 팩토리얼 구하기

  • 재귀 : 자기 자신을 호출하는 것
  • 재귀함수로 팩토리얼 구하기

피보나치 수열 (토끼가 번식하는 규칙)

  • 처음에는 토끼가 한 쌍만 존재한다.
  • 두 달 이상 된 토끼는 번식할 수 있다.
  • 번식 가능한 토끼는 매달 새끼를 한 쌍씩 낳는다.
  • 토끼는 죽지 않는다.

global 키워드

  • 함수 내부에서 함수 외부에 있는 변수를 참조하게 하는 기능을 제공
global 변수이름

  • global로 함수를 정의하지 않는다면 UnboundLocalError가 남
    -UnboundLocalError : 할당되지 않은 변수값을 참조하려고 시도할 때 발생하는 예외

재귀 함수의 문제

  • 상황에 따라서 기하급수적으로 반복 호출
  • 트리 내부에 있는 각각의 노드 값을 계산하려면 덧셈을 한 번씩 수행해 하는데, 한 번 구했던 값이라도 처음부터 다시 계산해야하는 문제가 발생
  • 트리 (tree)
  • 노드 (node) : 각 지점
  • 리프 (leaf) : 노드 중 가장 마지막 단계 지점


메모화 (memoization)

  • 이전에 계산한 값을 메모리에 저장하여 중복 계산을 제거하여 전체적인 실행 속도를 빠르게 해주는 기법
  • 재귀 함수를 사용하며 코드가 빠르게 실행되려면?
  • 같은 값을 한 번만 계산하도록 코드를 수정

메모 (memo)

  • 딕셔너리를 사용해서 한 번 계산한 값을 저장
  • 처리 수행하지 않고 메모된 값을 돌려주며 코드 속도 향상
  • 메모화는 재귀함수와 자주 함께 사용하여 실행 후 곧바로 결과를 출력

조기 리턴 (early return)

  • 함수 흐름의 중간에 return 키워드를 사용하여 함수를 조기에 종료하는 프로그래밍 패턴
    - 과거에는 프로그램의 흐름 끝에서 return을 실행
    - if else 조건문을 만들고 각각의 마지막 부분에서 리턴


리스트 평탄화

  • 중첩된 리스트가 있을 때 중첩을 모두 제거하고 풀어서 1차원 리스트를 만드는 것

  • 재귀 함수를 사용하여 해결


가독성이 좋은 코드 작성하기

  • 쉽게 읽을 수 있는 코드
    - 주석을 잘 사용한 코드

    - 함수를 활용한 코드


유지보수를 좋게 하는 코드 작성하기

  • 상수는 변수에 저장하여 취급
  • 패턴이 반복되는 코드는 함수로 구현

0개의 댓글