728x90
반응형

dfs 17

[백준/BFS&DFS/C++] 9205번 맥주 마시면서 걸어가기

문제는 여기! #include using namespace std; int t, n; struct Point{ int x; int y; }; Point house, festival; Point cvs[101]; bool isvisited[101]; bool solve(){ queue q; q.push({house.x, house.y}); while(!q.empty()){ int x = q.front().first; int y = q.front().second; q.pop(); if(abs(x-festival.x) + abs(y-festival.y) n; cin >> house.x >> house.y; for(int c=0; c> cvs[c].x >> cvs[c].y; } cin >> festival.x ..

[백준/구현/BFS&DFS/C++] 2573번 빙산

https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제 해결 방법 수도코드로 표현하면 아래처럼 표현할 수 있다. while(1){ if(빙하의 개수==0) break; 빙하 덩어리 수 세기(); if(빙하 덩어리수 > 1) break; else 빙하 녹이기(); } 그리고 크게 구현할 것은 아래 3가지 이다. 1. 빙하마다 바다에 둘러싸인 면의 수 구하기 2. 한번에 녹이기 3. 덩어리 수 세기 우선 입력받을 때 빙하는 queue에 넣어주었..

[백준/BFS&DFS/C++] 2468번 안전 영역

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 전체 코드 #include using namespace std; int N; int MAP[101][101]; int minValue = 2e9, maxValue = 0; bool isVisited[101][101]; int dx[] = {-1, 0, 1, 0}; int dy[] = {0, 1, 0, -1}; void clearVisit(){ for(int i=0; i N; for(int i=0; i x..

[백준/BFS&DFS/C++] 17070번 파이프 옮기기1 * (삼성 코딩테스트)

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net #include using namespace std; int N; int MAP[17][17]; int dx[] = {0, 1, 1}; int dy[] = {1, 0, 1}; int result = 0; bool chk(int r, int c){ if(rN || cN || MAP[r][c]==1) return false; else return true; } void dfs..

카테고리 없음 2023.02.03

[백준/BFS/C++] 2606번 바이러스

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net #include using namespace std; int n, m; vector v[101]; bool isVisited[101]; int result = 0; void findVirus(){ queue q; q.push(1); isVisited[1] = true; while(!q.empty()){ int front = q.front(); q.pop(); result++; for(int i=0; i..

[백준/DFS/C++] 2667번 단지번호 붙이기

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net dfs를 활용하여 풀었다 #include using namespace std; int n; int graph[26][26]; vector num; int sum = 0; bool dfs(int x, int y){ // 범위 밖인 경우 if(x=n || y=n){ return false; } if(graph[x][y] == 1){ // 집인 경우 sum += 1; // 집 수 +1 graph[x][y..

알고리즘 2023.01.02

[백준/BFS/C++] 11725번 트리의 부모 찾기

https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 처음에는 예제 보고도 문제가 이해안됐는데 이런 뜻이었다 bfs를 이용해서 풀었고 처음에는 출력하는 부분에서 endl 을 썼는데 시간초과가 떴다 그래서 "\n"으로 바꿨더니 통과했다 #include using namespace std; int n; vector graph[100001]; int parent[100001]; void bfs(int n){ queue q; q.push(n); while(!q.empty()){ int x = q.front(); q.po..

알고리즘 2022.12.31

[백준/BFS/C++] 2178번 미로 탐색

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net bfs를 사용하여 풀었고 생각해보니 visited를 안쓰고 if(graph[nx][ny] != 0 && visited[nx][ny]==false) 조건 대신 if(graph[nx][ny] == 1) 조건을 썼어도 됐을 것 같다 #include using namespace std; int n,m; int graph[101][101]; bool visited[101][101]; int dx[] = {-1, 1, 0, 0}; int ..

알고리즘 2022.12.30
728x90
반응형