반응형

파이썬 재귀 3

[파이썬, Python] 백준 11724: 연결 요소의 개수

문제 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**7) cnt = 0 n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] visited = [False] * (n+1) for _ in range(..

[파이썬, Python] 백준 10870: 피보나치 수 5

문제 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 코드 def fivo(n): ans = 0 if n == 0: return ans elif n == 1: return ans + 1 else: ans = fivo(n-1) + fivo(n-2) return ans n = int(input()) print(fivo(n)) 설명 n이 0과 1일 경우, 그리고 나머지의 경우를 통해 피보나치 수를 계산하였다. ..

[파이썬, Python] 백준 10872: 팩토리얼

문제 https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 def fact(n): ans = 1 if n > 0: ans = n * fact(n-1) return ans n = int(input()) print(fact(n)) 설명 간단하게 팩토리얼로도 구현이 가능하지만, 재귀를 연습하는 문제이므로 재귀로 구현했다. n까지의 값을 구하면서, n-1의 팩토리얼을 이용하여 재귀를 사용하였다.

반응형