| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- level2
- 운영체제
- 코딩테스트
- 수학
- DP
- 그리디
- 딕셔너리
- BFS
- 브루트포스
- 가상메모리 관리
- 스택
- MYSQL
- 백준
- 가상메모리
- 구현
- level1
- 파이썬
- 다익스트라
- 힙
- level3
- 재귀
- 프로그래머스
- python
- 투포인터
- BOJ
- N과M
- dfs
- 다이나믹 프로그래밍
- 에라스토테네스의 체
- programmers
- Today
- Total
목록DP (20)
동캄의 코딩도장
https://www.acmicpc.net/problem/2240 # 백준 2240 자두나무import sysT,W=map(int,sys.stdin.readline().split())ans=[[[0 for _ in range(W+1)] for _ in range(T+1)]for _ in range(3)]w=Wfor i in range(T): f_pos=int(sys.stdin.readline()) if i!=0: # index가 0이 아닌경우 if f_pos==1: #1번 나무로 떨어지는 경우 ans[1][i][W]=ans[1][i-1][W]+1 # 1번 나무에 쭉 가만히 있는 경우 for w in range(W-1,-1,-1): ..
https://www.acmicpc.net/problem/2302 # 최종 정답을 저장할 변수ans = 1 # 전체 좌석 개수 N 입력N = int(input()) # VIP 좌석 개수 M 입력M = int(input()) # DP 배열 선언 (각 크기에 대해 가능한 좌석 배치 경우의 수 저장)dp = [0 for _ in range(101)] # 기본적인 피보나치 초기값 설정 (1개 좌석일 때 1가지, 2개 좌석일 때 2가지 경우)dp[0] = 1 # 빈 좌석 (계산 편의상 1로 설정)dp[1] = 1 # [O] → 한 가지 방법dp[2] = 2 # [OO], [XX] → 두 가지 방법# DP를 이용해 n개의 좌석을 배치할 수 있는 경우의 수 계산# 피보나치 수열을 따름: dp[i] = d..
https://www.acmicpc.net/problem/1495 생각보다 아이디어가 빨리 떠올라 쉽게 풀었다.#백준 1495 기타리스트from collections import dequeN,S,M=map(int,input().split())Vol=list(map(int,input().split()))times=[[-1 for _ in range(M+1)] for _ in range(N+1)]times[0][S]=Sfor i in range(1,N+1): for j in range(M+1): if times[i-1][j]!=-1: if j+Vol[i-1]=0: times[i][j-Vol[i-1]]=j-Vol[i-1]print(max(time..
https://www.acmicpc.net/problem/2167 어떻게 풀어도 풀리는 문제다.#백준 2167 2차원 배열의 합import sysN,M=map(int,sys.stdin.readline().split())arr=[]for _ in range(N): arr.append(list(map(int,sys.stdin.readline().split())))for _ in range(int(sys.stdin.readline())): ans=0 start_r,start_c,end_r,end_c=map(int,sys.stdin.readline().split()) rows=arr[start_r-1:end_r] for row in rows: ans+=sum(row[sta..
https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net #백준 5525 IOIOI import sys input=sys.stdin.readline N=int(input()) M=int(input()) S=list(map(str,input().rstrip())) target=2*N+1 dp=[0]*(M) answer=0 if S[0]=='I': dp[0]=1 for i in range(..
https://www.acmicpc.net/problem/4811 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net # 백준 4811 알약 import sys input = sys.stdin.readline ans = [0]*(32) dp = [[0]*32 for _ in range(32)] for i in range(1, 32): dp[i][0] = 1 for i in range(1, 32): for j in range(1, i+1): dp[j][i] = dp[j-1][i]+dp[j][i-1] # dp[j+1][i]=dp[j..