백준 알고리즘/백준 CLASS 417 [백준 C++] 11444번: 피보나치 수 6 1. 문제 https://www.acmicpc.net/problem/11444 11444번: 피보나치 수 6 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 알고리즘 분류 수학 분할 정복을 이용한 거듭제곱 3. 소스 코드 #include #include using namespace std; typedef vector matrix; int MOD = 1000000007; // 행렬 곱셈 정의 matrix operator*(matrix& a, matrix& b) { matrix temp(2, vector(2)); for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) .. 2023. 6. 9. [백준 C++] 1987번: 알파벳 1. 문제 https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 2. 알고리즘 분류 그래프 이론 그래프 탐색 깊이 우선 탐색 백트래킹 3. 소스 코드 #include #include using namespace std; int R, C; int max_count; // 지나간 최대의 칸 수 int alphabet_table[26]; // 각 알파벳 카운팅용 테이블 char map[20][20]; // 보드 정보 // 방향 배열(상,하,좌,우).. 2023. 6. 9. [백준 C++] 2206번: 벽 부수고 이동하기 1. 문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 2. 알고리즘 분류 그래프 이론 그래프 탐색 너비 우선 탐색 3. 소스 코드 #include #include #include #include #include #include #define INF 987654321 using namespace std; int N, M; int map[1003][1003]; int visited1[1003][1003]; // 벽을 .. 2023. 2. 8. [백준 C++] 1865번: 웜홀 1. 문제 https://www.acmicpc.net/problem/1865 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 2. 알고리즘 분류 그래프 이론 벨만-포드 3. 소스 코드 #include #include #define INF 987654321 using namespace std; struct edge { int s, e, t; }; // N : 지점의 수, M : 도로의 개수, W : 웜홀의 개수 int N, M, W; vector edges; // 벨만 코드 알고리즘 bool bel.. 2023. 2. 5. [백준 C++] 1238번 : 파티 1. 문제 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 2. 알고리즘 분류 그래프 이론 데이크스트라 3. 소스 코드 #include #include #include #define INF 987654321 using namespace std; int N, M, X; vector graph[2][1001]; vector dist[2]; // 데이크스트라 알고리즘(최단거리 구하는 알고리즘) void Dijstra(i.. 2023. 1. 24. [백준 C++] 17144번 : 미세먼지 안녕! 1. 문제 https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 2. 알고리즘 분류 구현 시뮬레이션 3. 소스 코드 #include #include using namespace std; int R, C, T; int total_dust = 0; int dr[] = { -1, 0, 1, 0 };// row 방향배열 int dc[] = { 0, 1, 0, -1 };// col 방향배열 int map[50][50];// 맵 정보 vector air_cl.. 2022. 12. 11. [백준 C++] 14938번 : 서강그라운드 1. 문제 https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 2. 알고리즘 분류 그래프 이론 데이크스트라 플로이드-워셜 3. 소스 코드 3-1) 일반 DFS 활용 #include #include #include using namespace std; int max_item;// 최대 아이템 갯수 int items[101];// 각 지역의 아이템 갯수 bool visited[101];// 방문한 지역 체크 vector graph[101];// 지역 간의 .. 2022. 12. 9. [백준 C++] 14502번: 연구소 1. 문제 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 2. 알고리즘 분류 구현 그래프 이론 프루트포스 알고리즘 그래프 탐색 너비 우선 탐색 3. 소스 코드 #include #include #include #include #include using namespace std; int N, M, max_safetyArea = 0; int map[10][10]; int tmp_map[10][10]; int dy[] = { -1, 0, 1, 0 }; int d.. 2022. 12. 8. [백준 C++] 13172번 : Σ 1. 문제 https://www.acmicpc.net/problem/13172 13172번: Σ 모듈러가 11에서 1,000,000,007이 되어 답이 달라졌지만, 역시 3을 곱한 다음 1,000,000,007으로 나눈 나머지는 7이 된다. www.acmicpc.net 2. 알고리즘 분류 수학 정수론 분할 정복을 이용한 거듭제곱 모듈로 곱셈 역원 페르마의 소정리 3. 소스 코드 #include #define MOD 1000000007 using namespace std; // n^m을 구하는 함수 // 분할 정복을 이용한 거듭제곱 long long power(long long n, long long m) { long long ret = 1; while (m) { if (m & 1) ret = ret * .. 2022. 12. 8. [백준 C++] 12851번 : 숨바꼭질 2 1. 문제 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 2. 알고리즘 분류 그래프 이론 그래프 탐색 너비 우선 탐색 3. 소스 코드 #include #include #define INF 987654321 using namespace std; int dist[200005]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); //.. 2022. 12. 4. 이전 1 2 다음