본문 바로가기

분류 전체보기

(157)
#2156 포도주 시식 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 실버 1의 문제이다. 예전에 풀었던 계단 오르기 문제와 매우 흡사하지만 조금더 어려운 버전이다. 가버렷~! #include #include #include using namespace std; int podo[10001]; int dp[10001]; int main() { //freopen("input.txt","r",stdin); int n; cin>>n; for(int i=1;i>podo[i];..
#11052 카드 구매하기 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 실버 1의 문제이다. dp 언제쯤이면 익숙해지고 쉽게 해결할지 의문이다. #include #include #include using namespace std; int P[10002]; int dp[1001]; int main() { freopen("input.txt","r",stdin); int n; cin>>n; for(int i=1;i>P[i]; } for(int i=1;i
#2294 동전 2 https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 실버 1의 문제이다. 짧지 않은 고민 끝에 결국 풀어서 매우 기쁘다. #include #include using namespace std; int n,k; int gachi[101]; int dp[10001]; int main() { //freopen("input.txt","r",stdin); cin>>n>>k; for(int i=0;i>gachi[i]; for(in..
#1309 동물원 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 실버 1의 문제이다. 문제는 복잡하지 않았고 내 생각이 짧다는것을 다시 느꼈다. #include #include #define mod 9901 using namespace std; long long dp[100001][3]; int main() { //freopen("input.txt","r",stdin); int n; int ans=0; cin>>n; dp[1][0]=1; dp[1][1]=1; dp[1][2]=1; for(int i=2;i
#2583 영역 구하기 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 실버 1의 문제이다. 이정도 문제는 골드 5는 줘도 되지 않을까 하는 생각도 들지만 뭐...풀었으니 됐다. #include #include #include #include using namespace std; int m,n,k; int map[101][101]; int visited[101][101]; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; ..
#1699 제곱수의 합 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 실버 3의 문제였다. 디피는 항상 등록된(?) 티어보다 어려운것 같다. #include #include #include using namespace std; long long dp[100001]; int main() { //freopen("input.txt","r",stdin); int n; cin>>n; int num; for(int i=1;i
#11053 가장 긴 증가하는 부분수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 실버 2의 문제이다. dp는 언제쯤 감이 생겨서 쉬워질까 ㅠ #include #include #include using namespace std; int n,cnt; int seq[1001]; int dp[1001]; int main() { freopen("input.txt","r",stdin); cnt=1; cin>>..
#1149 RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 실버 1의 문제이다. 예전에 풀었을때는 어려워서 오또케이틀린가동자 했었는데 이제는 풀었당. #include #include using namespace std; int dp[1001][3]; int cost[1001][3]; int main() { freopen("input.txt","r",stdin); int n; cin>>n; for(int i=0;icost[i][j]; ..