백준/DP 3

[파이썬]-백준(BOJ)12852 _ 1로만들기 ver 2

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 해설 정답을 위한 배열을 만들어 주고 인덱스를 돌면서 1+, 2*, 3* 인덱스에 자기 연산 더하기 1을 저장해주는데 이미 들어가 있는 값보다 작을 경우에만 해준다. 그리고 경로배열은 점화식으로 저장해준다 처음에 무식하게 윗줄부터 3 나누고 2나누고 1 빼서 구하려고했지만 불가능했다. 그다음 Deep Copy 를 이용해 경로들을 저장해 주었지만 소용이 없었다. Deepcopy는 새로운배열을할당해 시간이 오래 걸리고 얕은 복사를 하니 다른경로들도 다 저장되는 오류가 생겼다 12345678910111213..

백준/DP 2021.06.07

[파이썬]-백준(BOJ) 12865_평범한 배낭

www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 해설 가치 배열을 만든다. 각 무게별로 계속 돌아주면서 물건 (무게,가치)를 넣어주면서 최대값으로 경신을 해준다 0(배낭무게) 1 2 3 4 5 6 7 0.0 (더미) 0 0 0 0 0 0 0 6.13 0 0 0 0 0 13 13 4.8 0 0 0 8 8 13 13 3.6 0 0 6 8 8 13 14 5.12 0 0 6 8 12 13 14 123..

백준/DP 2021.04.26

[파이썬]-백준(BOJ)11053_ 가장 긴 증가하는 부분 수열

시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 71114 27341 18053 36.870% 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 복사 6 10 20 10 30 20 50 예제 출력 1 복사 4 해설 L..

백준/DP 2021.04.21