728x90
반응형
아직 알고리즘 처음이라 부족한 부분이 많다. 하나하나 풀어보면서.. 어디서 막혔는지 정리해보기.
1. first trial -> 실패
어려웠던 부분
- scanf("1d%") 라는 한글자씩 받아오는 입출력과정을 못해서 해맸었다.
- 단지의 갯수인 cnt 를 도대체 어디서 세주는지 이해하질 못하였다.
- for 문 돌면서 범위를 도는데 어디서 어디까지 범위를 돌리는지 이해를 못했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include <iostream>
using namespace std;
int board[25][25] = {0} //보드판
int visited[25][25] = {0}
int cnt; //단지의 개수 -> Maximum 의 개수도 구해야하나?
int n; //지도의 크기
int dy[4] = {0,0, -1, 1};
int dx[4] = {1, -1, 0, 0 };
//탐색
void dfs(int x, int y)
{
for(int i = 0; i < 4 ; i++)
{
if(x < n && visited[x][y] != 1)
{
x += dx[i];
}
if(y < n && visited[x][y] != 1)
{
y += dy[i];
}
if(visited[x][y] != 1)
dfs(x, y);
}
cnt ++; //어디서 이 count 를 세아햘지 감이 안오넹..
}
int main(void)
{
//입력
scanf("%d", &n);
for(int i = 0; i <n ; i++)
{
for(int j = 0; j< n; j++) //숫자하나만 입력받을 경우! &1d 로 받은 것. 기억하자!!
scanf("%1d",&board[i][j]);
}
// 수행
for(int i =0; i< n; i++)
{
for(int j = 0 ; j<n ; j++)
dfs(i,j);
prinf("%d", &cnt);
}
// 출력
}
|
|
728x90
반응형
'이유's STUDY > 알고리즘 문제풀이' 카테고리의 다른 글
[ 백준 ] 4344번 - 평균은 넘겠지 ( Java 사용) (0) | 2021.07.21 |
---|---|
[ 백준 ] 1110- 더하기 사이클 ( Java 이용 ) (0) | 2021.07.20 |
[ 백준] 2562번 최대값 (Java 사용) (0) | 2021.07.20 |
7576_토마토 (0) | 2019.10.16 |
한달계획! (0) | 2019.09.24 |