IT/BOJ117 백준(BOJ) 1759 암호만들기 * 쉬운 백트레킹 문제입니다. 실수 할 수 있는점은 자음, 모음의 최소 개수가 정해져 있다는점과 입력을 받을때 실수 하지 말아야 한다는 점입니다. #include #include #include #include #include #include #include #include #include #define MAX 75005 #define INF 987654321 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n,m; char arr[20],ans[20],str[10]="aeiou"; bool tf; void back(int cur,int cnt, int mo, int ja) { if(cnt>n) return; for(.. 2018. 6. 1. 백준(BOJ) 1720번 타일 코드 *** 우선 이 문제를 풀기전에 기본적인 타일 문제를 풀고 풀어보자. EX. BOJ 11726, BOJ11727 1. 기본적인 타일문제의 DP를 이용하여 해결한다. 2. 중복검사를 진행한다. ***은 중복검사 부분에 대해서 시간이 된다면 다시 생각해 보면 좋을것 같다. #include #include #include #pragma warning(disable:4996) using namespace std; int map[35],mx; int main() { fill_n(&map[0], 35, 0); map[1] = 1; map[2] = 2; scanf("%d", &mx); for (int i = 1; i < mx; i++) { map[i + 1] += map[i]; map[i + 2] += map[i]*2; }.. 2018. 6. 1. 백준(BOJ) 14501 퇴사 * 그냥 간단한 dp문제이다. 핵심은 오늘까지 일에서 번돈이 어제까지의 번 돈보다 작은경우 오늘까지 번돈의 값을 바꿔준다. * : dp를 풀어본 사람이라면 금방 풀 수 있을것 같다. #include using namespace std; int n,a,b,r[30],mx=0; int main() { scanf("%d", &n); for (int i = 1; i r[i + a - 1]) r[i + a - 1] = r[i - 1] + b; if (r[i - 1] > r[i]) r[i] = r[i - 1]; // 오늘까지 일에서 번돈이 어제까지의 번 돈보다 작은경우 오늘까지 번돈의 값을 바꿔준다. if (r[i] > mx) mx = r[i]; } printf("%d", mx); return 0; } 2018. 6. 1. 백준(BOJ) 1126 같은 탑 *** 이 문제는 설계하는데 시간이 오래걸렸다. 다른 디피 문제에 비해 기준으로 잡을 값을 무엇으로 정할지가 어려운 문제였다. 많은 시간 생각한 결과 차이를 이용하여 값을 저장 하지 않으면 안된다는 생각을 하였다. 설계를 다하였다면 코드는 금방 짤 수 있다. #include #include #include #include #include #include #include #include #include #include #include #define MAX 500001 #define INF 987654321 #define MOD 1000000 typedef long long ll; #pragma warning(disable:4996) using namespace std; int n,tmp,ans=-1,map[51].. 2018. 6. 1. 이전 1 ··· 23 24 25 26 27 28 29 30 다음