1. 1010번: 다리놓기
-문제: https://www.acmicpc.net/problem/1010
1010번: 다리 놓기
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.
www.acmicpc.net
어렵게 생각했는데 알고보니 조합 문제였던; 수학적으로 생각해보는 것도 해보고, 단순하게 생각할 수 있으면 최대한 그렇게 해보자
-정답풀이:
- 조합 구하는 식 알아두기
2. 11052번: 카드 구매하기
-문제: https://www.acmicpc.net/problem/11052
11052번: 카드 구매하기
첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)
www.acmicpc.net
문제는 이해했으나 구현이 어려웠음.
-정답풀이:
n=int(input())
d=[0]*(n+1)
p=[0]+list(map(int,input().split()))
d[1]=p[1]
for i in range(2,n+1):
for j in range(1,i+1):
if d[i]<d[i-j]+p[j]:
d[i]=d[i-j]+p[j]
print(d[n])
다른 블로그 참조해서 이해한 결과
d[i]에서 i는 구매하는 카드의 개수이고 다음과 같은 규칙을 가진다.
d[1]=p[1] (카드를 하나 구매하면 당연히 카드 한개의 가격의 가짓수이다)
d[2]=d[0]+p[2], d[1]+p[1](1개카드 두개 구매하는거)
d[3]=d[0]+p[3], d[1]+p[2], d[2]+p[1]
d[4]=d[0]+p[4], d[1]+p[3],d[2]+p[2],d[3]+p[1]
3. 1904번: 01타일
-문제: https://www.acmicpc.net/problem/1904
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이
www.acmicpc.net
피보나치 수열로 쉬운 문제였다
-정답풀이:
-틀린 풀이:
- 리스트 다 구하고 15746으로 나누니 메모리 초과 발생. append할 때 나누어서 넣어야한다
- 그리고 1자리 수에 00은 불가능하지만, 1은 가능하므로 1의 값을 가진다(초기값 설정하는데 생각 더하자)
'백준 > DP' 카테고리의 다른 글
[코딩테스트]#10. 백준 9251번,11057번, 2293번 (0) | 2021.12.20 |
---|---|
[코딩테스트] #9. 백준 9461번,14051번, 9465번 (0) | 2021.12.18 |
[코딩테스트] #7. 백준 10844번,2193번,11727번 (0) | 2021.12.14 |
[코딩테스트]#6. 백준/다이나믹프로그래밍/ 1912번,2156번, 2748번 (0) | 2021.12.13 |
[코딩테스트]#5. 2579번, 11053번, 1932번 (0) | 2021.12.13 |