ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 7465. 창용 마을 무리의 개수
    SWexpertAcademy 2019. 7. 12. 03:15
    #include<cstdio>
    #include<iostream>
    #include<vector>
    #include<queue>
    #include<utility>
    
    using namespace std;
    
    int num;
    int a[101][101];
    
    bool d[101][101];
    
    void clean(int n) {//전역변수 초기화.. 쓴거만 초기화하자
    	for (int i = 1; i <= n; i++)
    	{
    		for (int j = 1; j <= n; j++)
    		{
    			a[i][j] = 0;
    			d[i][j] = false;
    
    		}
    	}
    }
    
    int main() {
    	scanf("%d", &num);
    	int non = 1;
    	while (num--) {
    		int n, m;
    		scanf("%d %d", &n, &m);
    		for (int i = 0; i < m; i++) {
    			int xx, yy;
    			scanf("%d %d", &xx, &yy);
    			a[xx][yy] = 1;
    			a[yy][xx] = 1;
    		}
    
    		int r = 0;
    		int p = 0;
    		for (int i = 1; i <= n; i++){ // 서로 Link되지 않은것 존재가능함 
    			p = 0;
    			for (int j = 1; j <= n; j++) {
    				
    				p++;
    				if (a[i][j] == 1) p = 0;
    			}
    			if (p  >= n) r++;
    		}
    		for (int i = 1; i <= n; i++) {//BFS파트, 인접리스튼 아직 안익숙해서 그냥..인접행렬
    			queue<pair<int,int>> q;
    			for (int j = 1; j <= n; j++) {
    				if (a[i][j] == 1 && d[i][j] == false) {
    					q.push(make_pair(i, j));
    					d[i][j] = true;
    				
    					
    				}
    
    			}
    			
    			while (!q.empty()) {
    				int x = q.front().second; int y = q.front().first;
    				d[x][y] = true;
    				q.pop();
    				for (int j = 1; j <= n; j++)
    				{
    					if (a[x][j] == 1 && d[x][j] == false)
    					{
    						q.push(make_pair(x, j));
    						d[x][j] = true;
    					}
    				}
    				if (q.empty())
    					r++;
    			}
    		}
    		printf("#%d %d\n", non, r);//값 구하기
    		clean(n);//초기화
    		non++;
    		
    
    	}
    	return 0;
    }

    창용마을의 무리개수 문제는 문제자체는 쉬운데, 서로 연결되지 않은 부분에 대해선 실수할 가능성이 높은듯

    쉬운 문제 이지만, 이런 간단한 함정에 빠지면 틀리기 쉬움

    'SWexpertAcademy' 카테고리의 다른 글

    5658. [모의 SW 역량테스트] 보물상자 비밀번호  (0) 2019.07.15
    1486. 장훈이의 높은 선반  (0) 2019.07.15
    1221. [S/W 문제해결 기본] 5일차 - GNS  (0) 2019.07.15
    7733. 치즈 도둑  (0) 2019.07.14
    7965. 퀴즈  (0) 2019.07.12

    댓글

Designed by Tistory.