본문 바로가기

백준 문제 풀이 & C++ 공부54

백준 2231번 C/C++ 이 문제가 조금 글이 이상하게 적혀있어서 이해를 못해서 블로그 글을 찾는 사람이 많을 것 같아서 먼저 이렇게 문제 이해를 도와드리겠습니다. acmicpc.net/problem/2231 [ 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net ](http://acmicpc.net/problem/2231) 예시에서 245의 분해합이 256이라고 한다. 245 + 2 + 5 + 6이라서 256이다. 이 256을 분해합으로 가지는 가장 작은 수를 구하라는 것이 이 문제의 물음이다. 참고로 25.. 2021. 2. 8.
백준 2614번 C/C++ 먼저 코드부터 올리겠습니다. #define _CRT_SECURE_NO_WARNINGS #include int list[1000000] = { 0, }; int main() { int n; //n장의 카드, 1이 제일 위 n이 제일 아래인 상태이다. scanf("%d", &n);//n값 받음. for (int i = 1; i 2021. 2. 8.
백준 10163번 C/C++ 문제에서 딱 봐도 2차원 배열을 사용하라는 듯이 나왔다 그래서 간단하게 풀 수 있었습니다. #include int main() { int n; int a, b, x, y; int count; int nemo[101][101]; scanf_s("%d", &n); for (int i = 1; i 2020. 9. 6.
백준 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.