본문 바로가기

그래프이론3

10026 : 적록색약 (C++) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 오랜만에 풀어보는 그래프탐색 문제 한 개의 dfs함수를 만들어서 문제를 해결 해 보고 싶었지만 결국 두개로 나누어 만들어 문제를 해결했다. 한개로 합쳐 만들 수 있을까? #include #include #include using namespace std; char map[100][100]; bool visit[100][100]; bool visitColor[100][100]; int N; int colorWeak = 0; int normal = 0; int.. 2021. 2. 12.
2583 : 영역 구하기 (C++) 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 알고리즘 문제 푸는데 있어서 2차원 배열과 수학에서 사용하는 그래프의 x축과 y축의 방향이 다르다 보니 헷갈렸었지만 이제는 거의 완벽하게 이해하고 문제를 풀 수 있는 것 같다. 먼저 크기 값과 직사각형의 갯수를 받고 좌표값들을 받은다음 직사각형 좌표들을 모두 방문처리 한다. 그다음 각각 DFS 또는 BFS를 실행하여 분리된 영역의 개수와 각 영역의 넓이를 vector에 입력받고 오름차순으로 정렬한 후 출력한다. #include #include.. 2021. 2. 5.
2468 : 안전 영역 (C++) 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력한다. 비의 양이 정수만큼 내리는게 아니므로 아무 지역도 물에 잠기지 않을 수 있다. 값을 다 받으면서 제일 높은 위치 값을 확인 한 후 제일 높은 위치의 값 만큼만 확인해 보면된다. 각각 높이별로 DFS를 실행하여 안전한 영역의 수의 최대 개수를 비교하면서 구한 후 출력하면 끝. 오늘 문제 많이풀었다. #include using namespace std; #define MAX 100 int map[MAX][MA.. 2021. 2. 4.