본문 바로가기
반응형

다이나믹 프로그래밍5

[cpp 알고리즘] 백준 10942 팰린드롬? [백준] 10942 팰린드롬? cpp 풀이 DP, 다이나믹 프로그래밍 문제 출처: https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 문제 요약 - 자연수 N개(1> M; for(int i=1; i s >> e; if(dp[s][e] == 1) cout 2023. 5. 6.
[cpp 알고리즘] 백준 14613 너의 티어는? c++ 문제 풀이 손으로 풀어볼 때 처음에 2000점에서 시작하여 1번 게임을 하고 나면 1950점이 될 확률 1*WinRate, 2050점이 될 확률 1*LoseRate, 2000점이 될 확률 1*DRate로 생각을 했다. 2번 게임을 하고 나면 최소 점수 1900, 최대 점수 2050 사이에서 점수를 얻게 될 것이고, 1번 게임을 하고 난 1950점이 될 확률에 이길 확률, 비길 확률, 질 확률을 곱한 만큼의 확률로 +-50점의 점수들을 얻는다. 이런 방식으로 생각해서 코드를 짜게 됐다. 현재 점수가 2000점이고, 50point단위로 20번 점수를 더하거나 뺀다면 최소 점수는 1000점, 최대 점수는 3000점이다. 그리고 매번 50점 차이다. 이를 이용하여 배열을 만들었다. 1000~1499 → [0]~.. 2022. 9. 7.
[cpp 알고리즘] 백준 1149 RGB거리 c++ 1. 문제 2. 풀이 3. 코드 #include #include using namespace std; int N; int arr[1001][3]; int dp[1001][3]; int main(){ // input cin >> N; for(int i=0; i arr[i][j]; } } // init dp[0][0] = arr[0][0]; dp[0][1] = arr[0][1]; dp[0][2] = arr[0][2]; // dp[x][0] = arr[x][0] + min(dp[x-1][1], dp[x-1][2]) for(int i=1; i 2022. 7. 13.
[cpp 알고리즘] 백준 1003 피보나치 함수 c++ 1. 문제 2. 풀이 3. 코드 #include using namespace std; int T,N; int dp[50][2]; int main(){ // input cin >> T; dp[0][0]=1; dp[0][1]=0; dp[1][0]=0; dp[1][1]=1; for(int i=2; i> N; cout 2022. 7. 13.
반응형