일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 1일1솔
- 소수판별
- 누적합
- 그리디 알고리즘
- LCM
- 우선순위큐
- 완전탐색
- 소수찾기
- spring
- appendleft
- popleft
- 연관관계
- python3
- deque
- Python
- C#강의
- DP
- pypy3
- 브루투포스
- mvc
- BFS
- 합 구하기
- 백준
- JPA
- Java
- 인프런
- c#
- 프로그래머스
- 파이썬
- unity
Archives
- Today
- Total
jae_coding
(백준 알고리즘 문제풀이) 11052번 카드 구매하기 본문
반응형
문제
문제 접근
- dp를 활용하는게 효율적인 코드를 만들 것 같다.
- 개수에 따라서 최대 값을 dp에 저장시킴으로써 정답을 도출할 수 있을 것으로 예상했다.
코드
import sys
N = int(sys.stdin.readline())
P = list(map(int, sys.stdin.readline().split()))
dp = list([0] * (N + 1))
for i in range(1, N+1):
for j in range(1, i+1):
dp[i] = max(dp[i], dp[i-j] + P[j-1])
print(dp[len(dp)-1])
느낀점
파이썬에서 dp를 이용하기 위해서 list의 개수를 두번째 for 를 이용하기 위해서 N + 1개로 만들어주어야 하는 것을 깨닫게 되었다. 문제를 풀다가 자꾸 10개의 카드를 고르는 가격에 대하여 결과값이 도출이 되어야 하는데 10번째 loop가 돌지 않았기 때문에 9개의 카드를 골랐을 경우의 가격에 대한 결과값이 도출이 된 것이었다. dp를 이용할 때에는 루프의 성질을 잘 이해한 후 해결하는 능력을 키워나가야하겠다 다짐하게 되었다.
반응형
'알고리즘 문제 > 백준' 카테고리의 다른 글
(백준 알고리즘 문제풀이) 12865번 평범한 배낭 (0) | 2022.07.06 |
---|---|
(백준 알고리즘 문제풀이) 1904번 01타일 (0) | 2022.07.06 |
(백준 알고리즘 문제풀이) 10057번 오르막 수 (0) | 2022.07.05 |
(백준 알고리즘 문제풀이) 1010번 다리 놓기 (0) | 2022.07.05 |
(백준 알고리즘 문제풀이) 2193번 이친수 (0) | 2022.07.05 |
Comments