ํฐ์คํ ๋ฆฌ ๋ทฐ
          Programming/์๋ฃ๊ตฌ์กฐ
          
        [์งํฉ adt] ๋นํธ๋ฒกํฐ ์ฌ์ฉํด ๋ถ๋ถ์งํฉ ๊ฒ์ฌํ๊ธฐ, ํฉ์งํฉ, ๊ต์งํฉ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ ๋นํธ๋ฒกํฐ๋ก ์์ฑํ๊ธฐ
ํด๋์๊ทธ 2021. 4. 19. 20:52๋ฐ์ํ
    
    
    
  1. ๋นํธ๋ฒกํฐ ์ฌ์ฉํด ๋ถ๋ถ์งํฉ ๊ฒ์ฌํ๊ธฐ


์ฝ๋:
#include <stdio.h>
#include<string.h>
int subset(unsigned int A, unsigned int B) {// ์งํฉ A๊ฐ ์งํฉ B์ ๋ถ๋ถ์งํฉ์ธ์ง ๊ฒ์ฌ
	if ((A | B) == B) // A or B๊ฐ B๋ผ๋ฉด A๋ B์ ๋ถ๋ถ์งํฉ์
    	return 1; // ๋ถ๋ถ์งํฉ์ด๋ฉด 1๋ฐํ
	else
		return 0; // ๋ถ๋ถ์งํฉ์ด ์๋๋ผ๋ฉด 0๋ฐํ
}
int main() {
	char Aset[100], Bset[100]; // ์งํฉ Aset๊ณผ ์งํฉ Bset์ charํ์ผ๋ก ์ ์ธ
	int lenA, lenB; // ๊ฐ ์งํฉ์ ๊ธธ์ด ์ ์ฅํ  ๋ณ์
	unsigned int A = 0, B = 0; // ์์๋ฅผ ๋ํ๋ผ ํ์ ์์ผ๋๊น unsigned ์๋ฃํ ์ฌ์ฉ
	
	gets(Aset); //์งํฉ A์
๋ ฅ ๋ฐ๊ณ 
	lenA = strlen(Aset); // ๊ธธ์ด ๊ณ์ฐ
	if (Aset[0] != '0') {// ๊ณต์งํฉ์ด ์๋๋ผ๋ฉด
		for (int i = 0; i < lenA; i++) {
			A = A | (1 << (Aset[i] - 'A'));// A์ ๋ฌธ์-'A'ํด์ค ๊ฐ์ left shiftํด์ค์ orํ๊ธฐ(๋นํธ๋ฒกํฐ๋ก ๋ฐ๊พธ๊ธฐ)
		}
	}
	gets(Bset); //B๋ ๋๊ฐ์ด ๋ฐ๊ณ 
	lenB = strlen(Bset);
	if (Bset[0] != '0') {
		for (int i = 0; i < lenB; i++) {
			B = B | (1 << (Bset[i] - 'A'));// ๋นํธ๋ฒกํฐ ๋ง๋ค์ด์ฃผ๊ธฐ
		}
		printf("%d\n", subset(A, B));// ํจ์ ํธ์ถํด์ ๋ถ๋ถ์งํฉ์ธ์ง ๊ฒ์ฌํ๊ณ  ์ถ๋ ฅ
	}
	else
		printf("1");// B๊ฐ ๊ณต์งํฉ์ด๋ผ๋ฉด ๋ถ๋ถ์งํฉ์ผ๋ก ๋ณด๊ณ  ์ถ๋ ฅ(๊ทผ๋ฐ A๊ฐ ๋ถ๋ถ์งํฉ ์๋ ๋๋ ์๊ฐํด์ค์ผ๋๋๋ฐ ์๊ฐ์ํ๋ค ์ด์ ๋ณด๋๊น)
	return 0;
}**๋นํธ๋ฒกํฐ ์ด์ผํ๋์ง ๋ชฐ๋ผ์ ์กด๋ ํค๋งธ์........ ๋นํธ์ฐ์ฐ์ ๊ณต๋ถํ์
2. ํฉ์งํฉ, ๊ต์งํฉ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ ๋นํธ๋ฒกํฐ๋ก ์์ฑํ๊ธฐ

์ฝ๋:
#include <stdio.h>
#include<string.h>
void _union(int bit1[], int bit2[]) {
	int arr[26];
	int cnt1 = 0;
	int cnt2 = 0;
	for (int i = 0; i < 26; i++) {
		if (bit1[i] != 0)
			cnt1++;
	}
	for (int i = 0; i < 26; i++) {
		if (bit2[i] != 0)
			cnt2++;
	}
	if (cnt1 == 0 && cnt2 == 0) {
		printf("0");
	}
	else {
		for (int i = 0; i < 26; i++) {
			if (bit1[i] == 1) {
				arr[i] = 1;
			}
			if (bit2[i] == 1) {
				arr[i] = 1;
			}
		}
		for (int i = 0; i < 26; i++) {
			if (arr[i] == 1) {
				printf("%c", ('A' + i));
			}
		}
	}
}
void intersect(int bit1[], int bit2[]) {
	int arr[26];
	int flag = 0;
	int cnt1 = 0;
	int cnt2 = 0;
	for (int i = 0; i < 26; i++) {
		if (bit1[i] != 0)
			cnt1++;
	}
	for (int i = 0; i < 26; i++) {
		if (bit2[i] != 0)
			cnt2++;
	}
	if (cnt1 == 0 || cnt2 == 0) {
		printf("0");
	}
	else {
		for (int i = 0; i < 26; i++) {
			if (bit1[i] == 1 && bit2[i] == 1) {
				arr[i] = 1;
				flag++;
			}
		}
		if (flag == 0)
			printf("0");
		else {
			for (int i = 0; i < 26; i++) {
				if (arr[i] == 1) {
					printf("%c", ('A' + i));
				}
			}
		}
	}
}
int main() {
	char Aset[100], Bset[100];
	int lenA, lenB;
	int i = 0;
	int bit1[26] = { 0 }, bit2[26] = { 0 };
	
	gets(Aset);
	lenA = strlen(Aset);
	if (Aset[0] != '0') {
		for (int i = 0; i < lenA; i++) {
			bit1[Aset[i] - 'A'] = 1;
		}
	}
	gets(Bset);
	lenB = strlen(Bset);
	if (Bset[0] != '0') {
		for (int i = 0; i < lenB; i++) {
			bit2[Bset[i] - 'A'] = 1;
		}
	}
	_union(bit1, bit2);
	printf("\n");
	intersect(bit1, bit2);
	return 0;
}
๋ฐ์ํ
    
    
    
  'Programming > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ฌ๊ท] ํ๋ฌธ, ์ฌ๊ท์  ๋๋๊ธฐ, ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ ์ค๋์ฟ ํ์ด (0) | 2021.04.21 | 
|---|---|
| [์ฌ๊ท] ์ต๋๊ฐ ๊ตฌํ๊ธฐ, ํ๋ ธ์ด์ ํ, ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ(์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ) (0) | 2021.04.21 | 
| [๋ฆฌ์คํธ] ~~~ (0) | 2021.04.14 | 
| [๋ฆฌ์คํธ] ์ด์ค์ฐ๊ฒฐ๋ฆฌ์คํธ ADT ๊ตฌํ (0) | 2021.04.14 | 
| [์ฐ๊ฒฐ๋ฆฌ์คํธ] ๋จ์ผ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๋คํญ์ ๊ณ์ฐ ๊ตฌํํ๊ธฐ (0) | 2021.04.08 | 
                      ๊ณต์ง์ฌํญ
                      
                  
                
                  
                  
                    ์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
                    
                
                  
                  
                    ์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
                    
                
                  
                  - Total
- Today
- Yesterday
                    ๋งํฌ
                    
                
                  
                  
                    TAG
                    
                
                  
                  - Paper review
- AI์ปจํผ๋ฐ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ ํฌ์๋ฐ
- 3d-gs
- Gaussian Splatting
- AIRUSH
- ์ปดํจํฐ๋น์ 
- CLOVAX
- ๋ ผ๋ฌธ์ฝ๊ธฐ
- SKTECHSUMMIT
- SQL
- ์ฝ๋ฉ๊ณต๋ถ
- AIRUSH2023
- Aimers
- ๋๋ฆผ๋ถ์ค
- C์ธ์ด
- gs๋ ผ๋ฌธ
- MYSQL
- ์ฝ๋ฉ์๋ฌ
- ํ์ด์ฌ
- ๋ ผ๋ฌธ๋ฆฌ๋ทฐ
- gan
- dreambooth
- ์คํ ์ด๋ธ๋ํจ์ 
- ํ์ด์ฌ์ฝํ 
- ์ฝํ ์ค๋น
- 2d-gs
- lgaimers
- ๋ ผ๋ฌธ
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ | 
|---|---|---|---|---|---|---|
| 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 | 
                    ๊ธ ๋ณด๊ดํจ
                    
                ๋ฐ์ํ