- 문제 설명
조짜고 싶은사람을 쪽지에 적어 내서 그를 기반으로 조를 짬(조는 2명 기준)
- 입력
1 // 테스트 케이스
5 2 // 5명, 쪽지 2개
1 2 3 4 // 1번은 2번이랑, 3번은 4번이랑 조짜고 싶다.
- 출력
#1 3 // 테스트 케이스, 조 갯수
- 입력 예시
3
5 2
1 2 3 4
5 3
1 2 2 3 4 5
7 4
2 3 4 5 4 6 4 7
- 출력 예시
#1 3
#2 2
#3 3
- 코드
#include "stdio.h"
int group[1002]; // 조 배열
int main(int argc, const char * argv[]) {
int T;
scanf("%d", &T);
for(int tc = 1;tc <= T;tc++)
{
int numOfGroup=0; // 조 갯수 초기화
int numOfPeople;
int numOfPaper;
scanf("%d %d",&numOfPeople, &numOfPaper);
for(int i=0;i<1002;i++) // 조 배열 초기화
{
group[i] = i;
}
for(int i=1; i <= numOfPaper; i++) // 쪽지 갯수만큼
{
int n1,n2;
scanf("%d %d",&n1,&n2);
if(group[n1] == 0) // n1번 칸이 비어있으면 넣어주고
group[n1] = n2;
else // 아니라면 반대 칸에 넣어주기
group[n2] = n1;
}
for(int i=1;i<numOfPeople+1;i++) // 조 원 만큼 돌면서
{
if(group[i] == i) // 대표 번호 일 경우(조원 수 = 대표번호)
numOfGroup++; // 조 갯수 증가
}
printf("#%d %d\n",tc,numOfGroup);
}
return 0;
}
'교육 > 문제해결' 카테고리의 다른 글
[4일차][그래프] 최소거리 (0) | 2017.09.01 |
---|---|
[4일차][그래프] n으로 도착하는 경로 개수 (0) | 2017.09.01 |
[3일차][이진트리] 부모노드의 합 구하기 (0) | 2017.08.30 |
[3일차][2진트리] 부모의 갯수 자식 갯수 세기 (0) | 2017.08.30 |
[2일차][재귀함수] 작업지시하기 (0) | 2017.08.29 |