본문 바로가기
백준 9095번 C/C++ 이전의 문제인 2xn과 비슷한 형식의 dp문제라서 그런지 시간이 별로 걸리지 않았다. 시간 초과가 나올거 같아서 동일하게 배열을 활용하여 풀기로 하였고 이 문제 또한 규칙성을 빠르게 알아차렸다. 예를 들어 8의 예시를 들자면 7, 6, 5의 경우의 수를 더하면 8이 나왔다. 4까지는 숫자가 문제에 나와있어서 5까지만 구해봐도 그 규칙성이 눈에 띄게 보였다. 코드는 이렇게 만들었다. #include int main() { int a[1001]; a[1] = 1; a[2] = 2; a[3] = 4; int result[1001]; int testcase; scanf("%d", &testcase); for (int j = 0; j < testcase; j++) { int n; scanf("%d", &n); f.. 2020. 8. 24.
백준 11726번 C/C++ 2xn 타일링을 풀어보았다. 몇개의 예시를 바탕으로 경우의 수를 세어 보았고 '피보나치 함수' 즉, 앞선 a의 경우를 구하기 위해 a-1의 경우와 a-2의 경우를 더하면 되는 것이었다. 그래서 코드를 #include int main() { int a; int count; scanf_s("%d", &a); count = algori(a); count = count / 10007; printf("%d", count); system("pause"); } int algori(int a) { if (a == 1) return 1; else if (a == 0) return 1; else { return algori(a - 1) + algori(a - 2); } } 위와 같이 만들어서 제출을 하니 system과 s.. 2020. 8. 24.
백준 1463번 C/C++ 1463번 백준 공부 첫번째 오답은 이러한 형태였다. #include int main() { int a; int min; int count; scanf_s("%d", &a); if (a == 1) { return 0; } while (a != 1) { if ((a - 1) % 3 == 0) { a = a - 1; a = a / 3; count++; } else if (a % 3 == 0) { a = a / 3; count++; } else if (a % 2 == 0) { a = a / 2; count++; } else { a = a - 1; } } printf("%d", count); system("pause"); } 이러한 형태가 되면 실패하는 예시로는 32가 있었다. 32->16->15->5->4->.. 2020. 8. 23.