본문 바로가기

데이터구조/소스코드

Online Judge 1117 문제의 해답

반응형
SMALL
문제 설명 
주어진 숫자들로 두 개의 SLL을 구성하고, 두 SLL 간에 같은 숫자가 몇 개 있는지를 출력하는 프로그램을 작성하시오. 


입력 

첫 번째 줄에는 첫 번째 SLL에 추가할 숫자들의 개수 n이 주어진다. n > 0 

두 번째 줄에는 n개의 숫자들이 공백으로 분리하여 주어진다. 숫자들은 모두 서로 다르다. 

세 번째 줄에는 두 번째 SLL에 추가할 숫자들의 개수 m이 주어진다. m > 0 

네 번째 줄에는 m개의 숫자들이 공백으로 분리하여 주어진다. 숫자들은 모두 서로 다르다. 

하지만 두 번째 줄의 숫자들과는 같은 것들이 있을 수 있다. 


출력 첫 번째 SLL과 두 번째 SLL 간에 서로 같은 숫자가 몇 개나 나오는지를 출력한다. 


입력 예시 

1 2 3 4 

1 2 3 4 5 


출력 예시 

4


 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <stdio.h>
#include <stdlib.h>
struct node
{
	int data;
	struct node *next;
};

struct node *head1 = 0;
struct node *head2 = 0;

void addToSLL(int _data, struct node** h)
{
	struct node *new_one = (struct node *)malloc(sizeof(struct node));
	new_one->data = _data;
	new_one->next = 0;

	if (*h == 0)
	{
		*h=new_one;
		return;
	}
	struct node *temp = *h;
	while (temp->next != 0)
	{
		temp = temp->next;
	}
	temp->next = new_one;
	return;
}

void countSameData()
{
	struct node *temp1 = head1;
	struct node *temp2;
	int cnt = 0;

	while (temp1 != 0)
	{

		temp2 = head2;
		while (temp2 != 0)
		{
			if (temp1->data == temp2->data)
			{
				cnt++;
			}
			temp2 = temp2->next;
		}
		temp1 = temp1->next;
	}
	printf("%d", cnt);

}

void showSLL(struct node *h)
{
	struct node *temp = h;
	while (temp != 0)
	{
		printf("%d ", temp->data);
		temp = temp->next;
	}
}

int main(void)
{
	int n;
	int data;

	// for the first SLL
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &data);
		addToSLL(data, &head1);
	}

	// for the second SLL
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &data);
		addToSLL(data, &head2);
	}

	//showSLL(head1);
	//showSLL(head2);
	countSameData();
	return 0;
}


반응형
LIST

'데이터구조 > 소스코드' 카테고리의 다른 글

OJ 1131번 해답  (0) 2016.04.11
OJ 1132번 해답  (0) 2016.04.11
Queue 구현코드 (큐)  (0) 2016.04.04
Stack 구현 소스  (0) 2016.04.04
Doubly Linked List (DLL) 소스코드  (0) 2016.03.28