Algorithm(127)
-
[알고리즘] 2583번: 영역 구하기
0. 문제 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 1. 문제 이해 100 * 100 배열을 그린다. K개의 직사각형을 그린다. for(첫번째 꼭짓점의 y ~ 두 번째 꼭짓점의 y) 안에 for(첫 번째 꼭짓점의 x ~ 두 번째 꼭짓점의 x) 이중 for문을 사용한다. 각각의 연결된 컴포넌트들의 넓이를 구해서 저장한다. dfs로 연결된 컴포넌트의 수를 센다. 2. 제출 가. 실패 // 백준 2583: 영역 구하기 #include #include #include using namesp..
2023.09.01 -
[알고리즘] 2468번: 안전 영역
0. 문제 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 1. 문제 이해 연결된 컴포넌트의 수가 최대가 되는 높이 값을 구하는 문제 최댓값을 구하기 위한 방법 → 모든 경우의 수를 실행하고 비교한다? 2. 제출 가. 실패 //백준 2468번: 안전 영역 #include #include using namespace std; const int max_n = 100; int n, max_h=0, ret=0; int a[max_n][max_n], visited[max_n][max_n]; int dy[] = {-1,0,1,..
2023.09.01 -
[알고리즘] 1012번: 유기농 배추
0. 문제 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1. 문제 이해 주어진 맵에서 덩어리의 개수를 알아내면 된다. 이런 덩어리를 연결된 컴포넌트(connected component)라고 한다. 연결된 노드를 탐색한다. 그리고 배제한다. → DFS, BFS 사용. https://ko.wikipedia.org/wiki/플러드_필 2. 제출 가. a[][], visited[][]를 전역 변수로 선언 //백준 1012: 유기농 배추 #include #include // memeset using namespace std; ..
2023.08.31 -
[알고리즘] 2178번: 미로 탐색 (+ 붙어있는 입력)
0. 문제 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1. 문제 이해 동일한 가중치를 가진 경우에 최단거리 구하기 → BFS N, M(2 ≤ N, M ≤ 100)를 입력받는다. → 최대 100 * 100의 2차원 배열을 선언한다. 각각의 수들은 붙어서 입력으로 주어진다. → ??? // 예제 입력 4 6 101111 101010 101011 111011 2. 붙어있는 입력을 분리하는 방법 44 1000 0000 0111 0000 가. string으로 변환 첫 번째는 string으로 받아 변환하는 방법. #include using nam..
2023.08.30 -
[알고리즘] 그래프 이론 기초
0. 강의 2주차 이론 [알고리즘 강의] 2주차. 그래프이론, 인접행렬, 인접리스트, DFS, BFS, 트리순회 이번주차는 그래프이론과 DFS(깊이우선탐색), BFS(너비우선탐색) 그리고 트리순회인 preorder, inord... blog.naver.com 큰돌 선생님의 그래프이론과 DFS(깊이우선탐색), BFS(너비우선탐색) 그리고 트리순회인 preorder, inorder, postorder에 대한 블로그 포스팅. 이 글은 위에 내용을 다시 공부하기 싫어서 정리한 글입니다. [출처] [알고리즘 강의] 2주차. 그래프이론, 인접행렬, 인접리스트, DFS, BFS, 트리순회|작성자 큰돌 1. 그래프 가. 정점과 간선 그래프 : 정점과 간선들로 이루어진 집합. 정점(vertex)(V) : 노드라고도 불리..
2023.08.29 -
[알고리즘] 1859. 백만 장자 프로젝트
0. 문제 D2 level SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 제출 가. 실패 #include #include //#include using namespace std; int main(int argc, char** argv) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int test_case; int T; //freopen("input.txt", "r", stdin); cin>>T; for(test_case = 1; test_case > n; for(int i = 0; i ..
2023.08.24 -
[알고리즘] 4375번: 1
0. 문제 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. 출력 각 자릿수가 모두 1로만 이루어진 n의 배수 중 가장 작은 수의 자릿수를 출력한다. 예제 입력 1 3 7 9901 예제 출력 1 3 6 12 1. 문제 이해 n을 저장한다. (1≤n≤10000) 1, 11, 11..
2023.08.24 -
[알고리즘] 1629번: 곱셈
0. 문제 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 빈칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. 출력 첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다. 예제 입력 1 10 11 12 예제 출력 1 4 1. 문제 이해 A B C = 10 11 12라면… 10 * 10 = 100 = 12 * 8 + 4 ← 12의 제곱은 12로..
2023.08.12