| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- BFS
- JPA
- C#강의
- pypy3
- DP
- mvc
- 프로그래머스
- python3
- 브루투포스
- 합 구하기
- 인프런
- 소수판별
- 누적합
- 연관관계
- 우선순위큐
- appendleft
- 그리디 알고리즘
- 파이썬
- 1일1솔
- spring
- 백준
- Python
- popleft
- 완전탐색
- Java
- c#
- deque
- 소수찾기
- unity
- LCM
- Today
- Total
목록전체 글 (139)
jae_coding
문제 문제 링크 문제 접근 가지고 다닐 배낭에 최대한 가치 있게 싸려고 한다. 여행자가 필요한 N개의 물건 (무게 W, 가치 V, 최대 K무게를 가질 수 있다.) 출력: 여행자가 배낭에 넣을 수 있는 최대 가치의 합 dp matrix: 행(K+1), 열(N+1) case1. 배낭의 허용 무게보다 넣을 무게가 크다면 i번째와 i+1번째의 넣은 무게를 같게한다. case2. 만약 허용 무게보다 작다면, 넣을 무게만큼 뺀 dp확인 후 현재 무게와 더하여 최대 값을 dp의 i번째에 저장한다. 코드 import sys # N: 물품의 수, K: 여행자가 버틸 수 있는 무게 N, K = map(int, sys.stdin.readline().split()) # W: 물건의 무게, V: 물건의 가치 elements =..
문제 문제 링크 문제 접근 0, 1이 쓰여진 낱장의 타일 -> 00, 1 이 쓰여진 낱장의 타일 goal: N이 주어졌을 때, 가질 수 있는 모든 가짓수 output: 길이가 N인 모든 2진 수열의 개수를 15746으로 나눈 나머지 N의 개수 1(1): 1 2(2): 00, 11 3(3): 001, 100, 111 4(5): 0011, 0000, 1100, 1111, 1001 5(8): 00001, 10000, 11100, 11111, 10011, 11001, 00100, 00111 점화식 An = A(n-2) + A(n-1) 코드 메모리 초과 코드 import sys sys.setrecursionlimit(10**6) def fib(N, memo): if N == 1: return 1 elif N ==..
문제 문제 링크 문제 접근 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개로 만들어주어야 하는 것을 깨닫게 되었다. ..