목록Algorithm (421)
Mini
1260번: DFS와 BFS (acmicpc.net) 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net * bfs 하는법 1.q메이커 2.push 3.while(size) 4.연결됨 & 미방문 -> push, 방문처리 #include using namespace std; typedef long long int ll; int n, m,v,t1,t2, a[1004][1004], visited[1004]; int dx[] = {0,1,-1,0}; int dy[] = {1,0,0,..
2667번: 단지번호붙이기 (acmicpc.net) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net * int dfs 구현방법 1. dfs내의 int ret=1 2. main의 ret.push(dfs(i,j)) * scanf-cin혼용금지 ios와 cin을 지우고 scanf로 고쳤더니 정답...? #include using namespace std; typedef long long int ll; int n, c, a[25][25], v[25][25]; int dx[] = {0,1,-1,0}; int dy[] =..

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 1.int dfs => 영역안의 원소가 몇개인지 카운팅 2.ny>m,n 둘중 뭐쓸지 확실하게 3.좌표를 배열로 바꾸기 #include using namespace std; #define y1 aaaa const int max_n = 104; int m,n,k, ny, nx, ans, a[max_n][max_n], visited[max_n][max_n]; int dx[] = { ..
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net * 잘못접근 : a_copy 배열에 안전지역을 -1로 플래그.....복잡 * 해결 : 높이를 인자로 추가 높이 초과일때만 bfs탐색! #include using namespace std; const int max_n = 104; int n, ny, nx, ret, ans, a[max_n][max_n], visited[max_n][max_n]; int dx[] = { -1,0,1,0 }; int dy[] ..
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1. tc문제는 초기화 visit처리만 담당 #include using namespace std; const int max_n = 51; int t, n, m, k, ny,nx,ret, a[max_n][max_n], visited[max_n][max_n]; int dx[] = {-1,0,1,0}; int dy[] = {0,-1,0,1}; /* * dfs * 1.방문처리 * 2.for(dy,dx) * 3.방문가..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 최단거리는 bfs! visit배열의 값 == 해당좌표까지 오는 최단거리! #include using namespace std; #define max_n 104 int n, m, x,y, visited[max_n][max_n], a[max_n][max_n]; int dx[] = {1,0,-1,0}; int dy[] = {0,1,0,-1}; int main() { scanf("%d %d", &n, &m); for (int i = 0..
https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net #include using namespace std; int n, k,temp;//숫자, 연속일 int psum[100001]; int ret = -10000004;//최악의경우 : -100*10만번(n) /* * (-) 이중포문 : 100,000 * 100,000 ->시간초과 * * 해결 : * 구간쿼리는 psum!!!!!!!!! * ex) * 배열 : 1 2 3 4 5 * psum..
https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net #include using namespace std; int n; int cnt[26]; int main() { cin >> n; for (int i = 0; i > s; cnt[s[0] - 97]++;//a는97 A는65 } bool z=false; for(int i=0;i=5) { cout