반응형
https://www.acmicpc.net/problem/13392
#include <bits/stdc++.h>
#define MX 10003
using namespace std;
int N, dp[MX][11];
char A[MX], B[MX];
int dpf(int num, int left) {
int &ret = dp[num][left];
if (ret > 0) return ret;
if (num == N) return 0;
int lcnt = ((A[num] - B[num]) - left + 20) % 10;
int rcnt = 10 - lcnt;
return ret = min(dpf(num + 1, (left + lcnt) % 10) + lcnt, dpf(num + 1, left) + rcnt);
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> B >> A;
cout << dpf(0, 0) << '\n';
}
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 1097번 : 마법의 문자열 - KMP (0) | 2022.12.11 |
---|---|
백준 1514번 : 자물쇠 - DP (0) | 2022.12.10 |
백준 12920번 : 평범한 배낭 2 - 냅색 DP (0) | 2022.12.03 |
백준 13506번 : 카멜레온 부분 문자열 - KMP (0) | 2022.12.03 |
백준 1893번 : 시저 암호 - KMP (0) | 2022.12.01 |