본문 바로가기
반응형

[백준]214

[BaekJoon/백준] 10844번 | 복습 1회 완료 동적계획법 문제. 계단수를 찾는 문제다. 길이가 N인 숫자에서 계단수를 찾고, 그 결과를 이용해서 길이가 N + 1인 숫자에서의 계단수를 찾는다. 최근 문제들은 거의 이렇게 '반복문을 이용한 동적계획법'인 Bottom - up 방식으로 문제를 풀었다. 메모이제이션도 사용됐다고 보면 된다. (엄밀하겐 타뷸레이션이긴한데.. 구분지을 필요는 없을 것 같다. hevton.tistory.com/295) #include using namespace std; //a[x][y] x : 길이(0 = 1자리로 계산했음), y : 앞자리를 y로 하는 수의 계단수 개수 long long a[100][10] = { {1,1,1,1,1,1,1,1,1,1}, }; int N; int main() { cin >> N; for(int.. 2021. 1. 1.
[BaekJoon/백준] 1463번 | 복습 1회 완료 이전 문제들과 비슷하게, '해당 인덱스까지의 최솟값 / 최댓값' 이런 형태로 문제를 푸는 Bottom - up 방식이였다. 사실 문제를 처음 읽을 땐, 건방지게도 문제가 쉬워 보였다. 그냥 규칙만 잘 찾으면 문제가 풀리겠구나 라는 생각이였고, 실제로 1부터 25까지 숫자들 경우를 구해보면서 규칙을 찾은 것만 같았다. 이를 토대로 식을 구성하여 코드를 짰고, 넣자마자 1퍼도 안가서 탈락. 내 표본들에 의해서는 매우 정확하다고 생각했기에, 당연히 맞을거라고 생각했다. 하지만 그런 나에게 뒤통수를 세게 후려주듯이, 식을 세우는 데에 있어 엄청난 반례들이 존재했다. 이 문제의 핵심은, '나누어 떨어진다고 해서, -1 한 것보다 항상 작진 않다는 것' 이라는 반례가 있었다. 나열되는 최솟값의 규칙은 이러하다. 순.. 2020. 12. 31.
[BaekJoon/백준] 2579번 | 복습 1회 완료 처음에 짰던 방식 //arr[i][0]은 i 계단까지 밟는 최댓값. (0부터 시작) #include #define MAX(a, b) ((a> N; for(int i = 0; i > arr[i][0]; if(i 2. ( 0 에서 2 가 아님!) -> X 이거 아니다.. 그냥 온거랑 한칸 띄워서 온거랑 구분해야할듯하다 arr[i][1] = arr[i - 1][1] + 1; // 이전 칸에 한칸 더 밟음. } else { if (arr[i - 1][0] =2)// 이왕 같으면 두.. 2020. 12. 30.
[BaekJoon/백준] 1932번 | 복습 1회 완료 이전의 1149번과 매우 유사한 문제였다. #include #define MAX(a,b) (a max) max = result; return; } list(i + 1, j, count + 1, (arr[i][j] + result)); list(i + 1, j + 1, count + 1, (arr[i][j] + result)); } int main() { scanf("%d", &N); for(int i = 0; i < N; i++) { for(int j = 0; j < i + 1; j++) { scanf("%d", &arr[i][j]); } } list(0, 0, 0, 0); printf("%d", max); } (여기서 result 를 일종의 check 배열형식으로 사용했다고 보면 되는데, check 배.. 2020. 12. 27.
반응형