다이나믹 프로그래밍 알고리즘 Q www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net A 입력조건만 조심해서 풀면 된다. 코드 n = int(input()) d = [0] * 21 d[0] = 0 d[1] = 1 d[2] = 1 for i in range(3, n+1): d[i] = d[i-1] + d[i-2] print(d[n])
다이나믹 프로그래밍 알고리즘 Q www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net A 다이나믹 프로그래밍을 이용하여 풀었다. 코드 n = int(input()) d = [0] * 91 d[1] = 1 d[2] = 1 for i in range(3, n+1): d[i] = d[i-1] + d[i-2] print(d[n])
정렬 알고리즘 Q www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net A 시간초과에 주의해서 풀어야 한다. 코드 import sys #input하면 시간초과 발생하므로 sys 라이브러리 사용한다. n = int(input()) array = list(int(sys.stdin.rstrip()) for _ in range(n)) array.sort() for i in array: print(i)
정렬 알고리즘 Q www.acmicpc.net/problem/2752 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net A sort()를 사용하고, end를 이용하여 출력한다. 코드 array = list(map(int, input().split())) #int로 입력받지 않으면 제대로 정렬 안될 수 있다. array.sort() for i in array: print(i, end = ' ')