실버1 3

[C++/BOJ] 백준 2156 포도주 시식 (DP)

https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 백준 티어 : 실버 1 => 포도주의 개수와 각각의 양이 주어질때, 3번연속으로 마시지 못한다는 제한이 있다. 이때 마실 수 있는 포도주의 양을 출력하는 문제이다. 해설 : DP를 이용하여 푸는 문제다. 3번연속으로 마실수 없다는 것을 염두해서 풀이해야한다. 크게 두가지의 경우가 있다. 1) n번 포도주를 마시지 않는 경우 2) n번 포도주를 마시는 경우 n번째를 마시는 경우에는 또 2가지의 경우로..

[C++/BOJ] 백준 12101 1,2,3더하기2 (백트래킹)

https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 백준티어 : 실버1 입력 첫째 줄에 정수 n과 k가 주어진다. n은 양수이며 11보다 작고, k는 231-1보다 작거나 같은 자연수이다. 출력 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. 예제 입력 1 복사 4 3 예제 출력 1 복사 1+2+1 => n과 k가 입력될때 총 합이 n이 되는 1,2,3의 합으로 이루어진 식의 k번째 식을..

[C++/BOJ] 백준 11051 이항계수2 (DP) 알고리즘 문제풀이

문제 링크 백준티어 : 실버 1 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net N과 K가 주어질때 그 이항계수의 값을 구하는 문제입니다. 이와 똑같은 문제인 이항계수1이 있는데 그것과 같은 풀이를 하면 시간초과가 납니다. 이 문제는 dp를 이용하여 풀어야합니다. 먼저 이항계수 nCk = (n-1)C(k-1) + (n-1)Ck 입니다. 문제를 풀다보면 이항계수의 개념이 몇번 나오기때문에 외워두는 것이 편할것같습니다. 해답코드 : #include #include using namespace std; int n, k;..