분류 전체보기 (588) 썸네일형 리스트형 백준 2512번 [예산](C++) -yes6686- 티스토리 백준 문제 풀이: 2512 (예산)문제 링크: https://www.acmicpc.net/problem/2512문제 설명:각 지방에서 요청한 예산의 합이 국가 예산 총액을 초과할 경우, **상한선**을 정해 각 지방의 예산을 조정하는 문제입니다. 예산이 상한선 이하인 경우는 요청한 예산을 그대로 배정하고, 상한선을 초과하면 상한선만큼만 배정합니다. 상한선의 **최댓값**을 구하는 문제입니다.문제 해결 코드#include #include using namespace std;int arr[10001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; // 지방의 수 cin >> n; int sum = 0; for.. 백준 1699번 [제곱수의 합](C++) -yes6686- 티스토리 백준 문제 풀이: 1699 (제곱수의 합)문제 링크: https://www.acmicpc.net/problem/1699문제 설명:주어진 자연수 n을 제곱수의 합으로 나타낼 때, 필요한 제곱수 항의 최소 개수를 구하는 문제입니다. 예를 들어 n = 7이면 4 + 1 + 1 + 1 = 7로 최소 4개의 항이 필요합니다.문제 해결 코드#include #include using namespace std;int dp[100001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; dp[1] = 1; // 1은 자기 자신이 제곱수이므로 1개 // DP 배열 초기화 for (int i = 2; i .. 백준 9655번 [돌 게임](C++) -yes6686- 티스토리 백준 문제 풀이: 9655 (돌 게임)문제 링크: https://www.acmicpc.net/problem/9655문제 설명:돌 게임은 돌을 1개 또는 3개 가져갈 수 있는 게임입니다. 두 사람이 번갈아가며 게임을 진행하며, 마지막 돌을 가져가는 사람이 승리합니다. 주어진 돌의 개수 n에 대해, 시작하는 사람이 이길 수 있는지 확인하여 이긴 사람을 출력합니다. - "SK"는 상근이가 승리, "CY"는 창영이가 승리입니다.문제 해결 코드#include using namespace std;int dp[1001]; // dp[i]: 돌이 i개 남았을 때 이긴 사람 (1: SK, 2: CY)int main() { int n; cin >> n; dp[1] = 1; // 돌 1개: SK 승리 .. 백준 9657번 [돌 게임 3](C++) -yes6686- 티스토리 백준 문제 풀이: 9657 (돌 게임 3)문제 링크: https://www.acmicpc.net/problem/9657문제 설명:돌 게임 3은 상근이와 창영이가 번갈아가며 게임을 진행하는 게임입니다. 한 번의 턴에서 돌을 1개, 3개, 혹은 4개 가져갈 수 있습니다. 마지막 돌을 가져가는 사람이 승리하며, 시작하는 사람이 이길 수 있는지 확인합니다. - "SK"는 상근이가 승리, "CY"는 창영이가 승리입니다.문제 해결 코드#include using namespace std;int dp[1001]; // dp[i]: 돌이 i개 남았을 때 승리하는 사람 (1: SK, 2: CY)int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n;.. 백준 1167번 [트리의 지름](C++) -yes6686- 티스토리 백준 문제 풀이: 1167 (트리의 지름)문제 링크: https://www.acmicpc.net/problem/1167문제 설명:트리의 지름이란, 트리에서 임의의 두 정점 사이의 거리 중 가장 큰 거리를 의미합니다. 주어진 트리에서 각 간선의 길이를 고려하여 트리의 지름을 계산하는 문제입니다.문제 해결 코드#include #include using namespace std;vector> v[100001]; // 인접 리스트: {비용, 연결 정점}int ans = 0; // 트리의 지름int ve = 0; // 가장 먼 정점// DFS로 트리 탐색void dfs(int x, int d, int p) { if (ans > n; /.. 백준 1788번 [피보나치 수의 확장](C++) -yes6686- 티스토리 백준 문제 풀이: 1788 [피보나치 수의 확장]문제 링크: https://www.acmicpc.net/problem/1788문제 설명:피보나치 수열은 다음과 같은 점화식으로 정의됩니다:F(0) = 0, F(1) = 1F(n) = F(n-1) + F(n-2) (n ≥ 2)F(n) = F(n+2) - F(n+1) (n 이 문제에서는 정수 n에 대해 F(n)을 구하고, 다음을 출력해야 합니다:F(n)이 양수, 음수, 또는 0인지에 따라 각각 1, -1, 또는 0F(n)을 10억(1,000,000,000)으로 나눈 나머지문제 해결 코드#include #include #define MOD 1000000000using namespace std;int dp[1000001]; // F(n)을 저장하기 위한 배열int.. 백준 24479번 [알고리즘 수업 - 깊이 우선 탐색 1](C++) -yes6686- 티스토리 백준 문제 풀이: 24479 [알고리즘 수업 - 깊이 우선 탐색 1]문제 링크: https://www.acmicpc.net/problem/24479문제 설명:양방향 그래프가 주어질 때, 주어진 시작 노드 r에서 깊이 우선 탐색(DFS)을 수행하고 각 노드가 탐색된 순서를 출력하는 문제입니다.다음 조건이 적용됩니다:DFS는 노드의 번호가 작은 순서대로 방문합니다.방문하지 않은 노드가 있을 경우, 해당 노드는 0으로 출력됩니다.문제 해결 코드#include #include #include using namespace std;vector graph[100001]; // 그래프의 인접 리스트int visited[100001]; // 방문 여부를 저장int order[100001]; //.. 백준 2293번 [동전 1](C++) -yes6686- 티스토리 백준 문제 풀이: 2293 [동전 1]문제 링크: https://www.acmicpc.net/problem/2293문제 설명:n가지 종류의 동전이 주어졌을 때, 주어진 동전들을 사용하여 가치의 합이 k원이 되는 경우의 수를 구하는 문제입니다.동전의 순서는 상관없으며, 각 동전은 무한정 사용할 수 있습니다.문제 해결 코드#include using namespace std;int coins[101]; // 동전의 가치를 저장하는 배열int dp[10001]; // 가치 합이 k원이 되는 경우의 수를 저장하는 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n, k; // n: 동전의 종류, k: 목표 금액 cin >>.. 이전 1 ··· 50 51 52 53 54 55 56 ··· 74 다음