살아가는 이유_EU 2019. 10. 2. 11:11
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-11};
int dx[4= {1-100 };
 
//탐색
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);
    }    
    // 출력    
 
}
 
 

cs

 

 

728x90
반응형