백준티어 3

[C++/BOJ] 백준 1932 정수 삼각형 (DP)

https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 백준 티어 : 실버1 => 삼각형이 입력되고 (0,0)을 시작으로 삼각형의 마지막줄까지 최대가 되는 경로를 찾아 출력하는 문제이다. 해설 : DP를 이용하여 풀이하면된다. 숫자를 저장할 이차원배열(mp) 과 최대 경로를 저장할 이차원배열(cache) 을 정의한후 재귀를 이용한 dp로 풀이한다. 정답 코드 : #include #include #include using namespace std; int n; int mp[501][501],cache[501][501]; in..

[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;..