백준 10989 C/C++ www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 바로 전 포스팅이 수 정렬하기 2였습니다. 알아보니 수 정렬하기 3도 있어서 하는김에 비슷할 것 같아서 그냥 수 정렬하기 2에 있는 그대로 제출을 하였습니다. 하지만 제출을 하고 나니 메모리 초과가 떴었습니다. 메모리 초과...? 한번도 떴었던 적이 없었던 사항인데 뭐지 싶어서 메모리 초과를 검색을 하고 이러한 상황을 겪은 다른 사람들의 글들을 읽어 보았습니다. www.acmicpc.net/board/view/21587 글 읽기.. 2021. 2. 16. 백준 2751번 C/C++ www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 이 문제는 제가 알고리즘 공부에 올렸었던 merge sort를 활용하면 쉽게 풀 수 있습니다. 하지만 제가 올렸던 그대로 merge sort를 사용하면 아마 풀리지 않으실 것입니다. 그 이유는 배열의 크기 때문인데요. 배열의 크기가 충분하지 않아서 그렇습니다. 제가 풀었던 코드는 다음과 같습니다. #define _CRT_SECURE_NO_WARNINGS #include int b[10000000];.. 2021. 2. 15. 백준 2292번 C/C++ 오늘은 설날입니다. 설 같은 명절에도 코딩으로 시작해야 한 해 동안 노력을 할 수 있겠죠..? www.acmicpc.net/problem/2292 [ 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net ](https://www.acmicpc.net/problem/2292) 이번에 걸린 문제는 매우 쉬운 문제였습니다. 규칙만 찾는다면 누구나 쉽게 풀 수 있는 문제였습니다. 굳이 이런 문제를 찾지는 않으실 것 같지만 일단 규칙 먼저 말씀드리겠습니다. 문제에 있는 그림이 매우 복잡해보여서 풀기 싫어보기지만 규칙성을 찾으면 코딩.. 2021. 2. 12. 백준 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. 백준 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. 이전 1 ··· 7 8 9 10 다음