dynamic programming

알고리즘/동적 계획법(Dynamic Programming)

백준-1003-피보나치 함수

1. 문제 출처 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 풀이 Dynamic Programming botton up 방법을 사용하여 입력 받은 값 중 최대값의 0,1의 개수를 구하면 그 밑의 값은 dp배열에 저장되어 있다. 그것을 이용하여 풀면 다음과 같은 코드가 나온다. ## 입력 받는 부분 import sys t = int(sys.stdin.readline()) input_list = [] for i in range(t): input_list.append(int(sys.stdin.readline())) ## 입력받은 값중 최..

알고리즘/동적 계획법(Dynamic Programming)

백준-1463-1로 만들기

1. 문제 출처 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 2. 풀이 Dynamic Programming 방법 중 botton up 방법을 사용하여 문제를 해결하였다. # 입력받기 import sys n = int(sys.stdin.readline()) # 미리값을 저장할 배열 dp = [0] * (n+2) # 1~3까지는 바로 출력한다. if n==1: print(0) elif n==2 | n==3: print(1) else: dp[2] = 1 dp[3] = 1 for i in range(4, n+1): # 숫자가 i일 때 # 3가지 방법 중 최소 횟..

알고리즘/동적 계획법(Dynamic Programming)

백준-2579-계단 오르기

1. 문제 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2. 해결법 n번째 계단으로 마무리 해야 하므로 각 계단에 도착했을 때 나올 수 있는 경우는 2가지이다. 1. n-2 번째 계단을 들린 후 오는 경우 2. n-3 , n-1번째 계단을 들린 후 오는 경우 두가지중 최대값을 선택하면 된다. 이를 코드로 나타내면 다음과 같다. # dp = 지난 계단의 정수 합을 저장하는 배열 # stairs = 각 계단에 적힌 정수값 dp[i] = (stairs[i]+..

easysheep
'dynamic programming' 태그의 글 목록