분류 전체보기

    [10451] 순열 사이클(C++)

    [10451] 순열 사이클(C++)

    문제 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net 해결 방법 계속 런타임 에러가 떠서 for문이 너무 많은건가.... 변수형을 잘못 선언했나..... 한참을 찾아보고 질문도 올려보고 검색도 해봤는데 그냥 배열의 크기를 잘못 설정해서 그런거였다ㅋㅋ 문제에서 순열의 크기는 최소 2, 최대 1000 이라고 했는데 이걸 착각하고 배열의 크기는 1000-2+1해서 999면 충분하다고 생각했다. 왜 그랬지? 아무튼 그래프 정점의 시작 노드는 1번..

    [11501] 주식

    [11501] 주식

    https://www.acmicpc.net/problem/11501 11501번: 주식 문제 홍준이는 요즘 주식에 빠져있다. 그는 미래를 내다보는 눈이 뛰어나, 날 별로 주가를 예상하고 언제나 그게 맞아떨어진다. 매일 그는 아래 세 가지 중 한 행동을 한다. 주식 하나를 산다. 원하는 만큼 가지고 있는 주식을 판다. 아무것도 안한다. 홍준이는 미래를 예상하는 뛰어난 안목을 가졌지만, 어떻게 해야 자신이 최대 이익을 얻을 수 있는지 모른다. 따라서 당신에게 날 별로 주식의 가격을 알려주었을 때, 최대 이익이 얼마나 되는지 계산을 해달라고 부탁 www.acmicpc.net 💡 내 코드(C++) /*[11501] 주식*/ #include #define MAX 1000001 using namespace std;..

    [2225] 합분해(C++)

    문제 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 해결 방법 dp[i][j] = 0 ~ i까지의 정수 j개를 더해서 그 합이 i가 되는 경우의 수 내 코드(C++) // [2225] 합분해 // https://www.acmicpc.net/problem/2225 // dp // dp[i][j] = 0 ~ i까지의 정수 j개를 더해서 그 합이 i가 되는 경우의 수 #include using namespace std; int main(void) { long dp[201][201]; int n, k; cin >> n >> k; for (int i = 0; i < 201; i++) { dp[0][i] = 0; dp[1][i] = i; dp[..

    [2193] 이친수

    문제 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되 www.acmicpc.net 내 코드(C) #include #define MAX 1000000 int main(void) { int n; long dp[MAX]; dp[0]=0, dp[1] = 1, dp[2] = 1; scanf..

    [2163] 초콜릿 자르기

    [2163] 초콜릿 자르기

    https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿을 친구들과 나눠 먹기로 했다. 이를 위해서 정화는 초콜릿을 계속 쪼개서 총 N×M개의 조각으로 쪼개려고 한다. 초콜릿을 쪼갤 때에는 초콜릿 조각을 하나 들고, 적당한 위치에서 초콜릿을 쪼갠다. 초콜릿을 쪼갤 때에는 금이 가 있는 위치에서만 쪼갤 수 있다. 이와 www.acmicpc.net 💡 내 코드(C++) // [2163] 초콜릿 자르기 /*초콜릿을 결국 1x1크기로 다 쪼갠다면 경우의 수는 한가지 밖에 없는데 왜 ..

    [2133] 타일 채우기

    [2133] 타일 채우기

    https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 복사 2 예제 출력 1 복사 3 힌트 아래 그림은 3×12 벽을 타일로 채운 예시이다.... www.acmicpc.net 💡 내 코드(C++) /*[2133] 타일 채우기*/ /*https://www.acmicpc.net/problem/2133*/ #include using namespace std; int main(void) { int n, sum = 0; int dp[31]; cin >> n; dp[0] = 0, dp[2..

    [1992] 쿼드트리

    [1992] 쿼드트리

    https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1≤N ≤64의 범위를 가진다. 두 번째 줄부터는 길이 N 의 문자열이 N 개 들어온다. 각 문자열은 0 또는 1의 숫자로 이루어져 있으며, 영상의 각 점들을 나타낸다. www.acmicpc.net 💡내 코드(C++) #include #include #include #define MAX 65 using namespace std; vectorlist[MAX]; bool check(int x, int y, int n); void solve(int x, int y, int n); int n; int cnt[3] = { 0 };..

    [1912] 연속합

    [1912] 연속합

    https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 💡 내 코드(C++) /*[1912] 연속합*/ /*https://www.acmicpc.net/problem/1912 */ #include #include using namespace std; int main(void) { int n, max; int arr[100001], dp[100001]; cin >> n; for (int i = 0; i > arr[i]; } dp[0] ..