본문 바로가기
반응형

Algorithm7

[파이썬] 재귀함수를 통한 피보나치 수의 구현 피보나치 수 - 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열 ※ 편의상 0번째 항을 0으로 두기도 함. 예시) 1) 반복문을 통한 팩토리얼의 구현 # 반복문을 통한 피보나치 수 구현 # 입력부 n = int(input()) # 0번째, 1번째 피보나치 수를 포함하는 배열 생성 answer_arr = [0, 1] # 반복문을 통해 n을 입력받았을 때, 기존 배열에 n번째 피보나치 수까지 추가 for i in range(n-1): answer_arr.append(answer_arr[1+i] + answer_arr[i]) # 입력받은 n번째 피보나치 수 출력 print(answer_arr[n]) 2) 재귀함수를 통한 팩토리얼의 구현 # 재귀함수를 통한 피보나치 수 구현 def F.. 2022. 8. 25.
[파이썬] 재귀함수를 통한 팩토리얼의 구현 팩토리얼(계승) - 그 수보다 작거나 같은 모든 양의 정수의 곱 예시) 3! = 3 × 2 × 1 4! = 4 × 3 × 2 ×1 1! = 1 ※ 0! = 1 재귀함수 - 함수의 정의 단계에서 자신(함수)을 참조하는 함수 1) 반복문을 통한 팩토리얼의 구현 # 반복문을 통한 팩토리얼 구현 N = int(input()) result = 1 for i in range(N, 0, -1): result = result*i print("{0}! = {1}".format(N, result)) 2) 재귀함수를 통한 팩토리얼의 구현 # 재귀함수를 통한 팩토리얼의 구현 def factorial(x): if x == 0: return 1 else: answer = x*factorial(x-1) # 함수호출부(아래 모식도 .. 2022. 8. 24.
[Python] 소수 판별/소수로 구성된 배열 생성 알고리즘 소수(prime number) : 1보다 큰 자연수 중, 1과 자신만을 약수로 갖는 수 방법 1) -해당 수가 소수인지 아닌지를 판별하는 함수 선언을 통해 소수로 구성된 배열 생성 # 코드실행 시간을 측정하기 위해서 time이라는 외부라이브러리를 불러옴 import time # start라는 변수에 코드실행 시작 시각 값 저장 start = time.time() # 입력 받은 값이 소수인지 판별하는 함수 선언 def prime(x): # tf라는 변수 선언 tf = 0 # 반복문을 통해 입력받은 값을 나눠봄, 단 한번이라도 조건문을 만족할 경우, # 입력받은 수(x)는 소수가 아니므로, 이를 나타내기 위해 tf라는 변수에 1을 지정 for i in range(2, x): if (x % i == 0): t.. 2022. 8. 14.
[Python] 백준 9020번 '골드바흐의 추측' 알고리즘 -2 이번 포스팅은 앞선 백준 9020번, 골드바흐 파티션 출력 알고리즘의 개선방법에 대해 다뤄보겠습니다. 처음 코드와 한계 및 개선 방향은 아래의 링크에서 확인하실 수 있습니다. [Python] 백준 9020번 '골드바흐의 추측' 알고리즘 -1 문제 골드바흐의 추측 - '2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다' 4 이상의 짝수를 입력받고, 그 짝수를 두 소수의 합으로 출력하는 알고리즘을 구현하시오. 만약 골드바흐 파티 look-up-onceaday.tistory.com 처음 코드에서는 모든 예제 값들에 대해서 출력은 정상적으로 되지만, '실행 시간' 문제에 따른 백준에서의 '시간 초과'가 문제였습니다. 이를 해결하기 위해서 먼저 두 가지 방법을 시도해보았습니다. 1) 자료구조의 변형 데이터.. 2022. 8. 6.
반응형