PHP로 합집합, 교집합, 여집합 구하기
집합처리는 데이타 처리시 빈번히 알고리즘 중에 하나입니다.
QnA에 답변한 내용이 아까워서 공유합니다.
만약 $a = "1,2,3"이있고
$b = "2,3,4" 가 있다면
2와 3을 제거하고 1,4만 남게 하려면 어떻게 해야할까요?
배열 $a, $b 의 여집합을 구하는 문제입니다.
php함수중에
array_diff 는 차집합
array_intersect 는 교집합 입니다.
php에 여집합 함수는 없습니다. 집합 연산을 통해서 구할수 있습니다.
A, B의 여집합은 (A - B) + (B - A) 입니다.(아마도 맞을겁니다.)
[code]
$arr_a = explode(",", $a);
$arr_b = explode(",", $c);
//여집합
$arr_c = array_merge(
array_diff($arr_a, $arr_b), // 1
array_diff($arr_b, $arr_a) //4
);
// $arr_c = 1 4
echo implode(",", $arr_c);
//result = 1,4
//교집합은
$arr_d = array_intersect($arr_a, $arr_b); //2, 3
//합집합은
$arr_e = array_merge(
array_intersect($arr_a, $arr_b), //2, 3
array_diff($arr_a, $arr_b), // 1
array_diff($arr_b, $arr_a) //4
); //2, 3, 1, 4
[/code]
댓글 5개
Innisfree
5년 전
명랑폐인 님 덕분에 항상 많이 배우고 있네요~
파이썬으로 한 번 작성해보았습니다 ^^
[http://sir.kr/data/editor/2001/aada0c6ce4d6abd313e6f910e9fb5a67_1578834950_7192.png]
파이썬으로 한 번 작성해보았습니다 ^^
[http://sir.kr/data/editor/2001/aada0c6ce4d6abd313e6f910e9fb5a67_1578834950_7192.png]
5년 전
파이썬은 수학함수가 많이 준비되어 있는 언어니까,,, 이미 있을거 같네요. (numpy에 있는것 같음)
위의 방법도 직관적입니다.
위의 방법도 직관적입니다.
Innisfree
5년 전
앗 위 댓글에서 '차집합'이 아니라 '여집합'인데 제가 잘못 적었네요.
파이썬에 수학이나 문자열 조작과 관련된 함수 또는 메서드가 많은 것 같아요~
set 자료형에 대해서 교집합을 위한 .intersection() 메서드, 합집합을 위한 .union() 메서드, 차집합을 위한 .difference() 메서드가 존재합니다.
말씀하신 numpy는 제가 사용빈도가 낮아서 관련된 함수로서 어떤 것이 있는지 잘 모르겠네요 ㅠㅠ
그럼 편안한 밤 되시고 안녕히 주무세요!
파이썬에 수학이나 문자열 조작과 관련된 함수 또는 메서드가 많은 것 같아요~
set 자료형에 대해서 교집합을 위한 .intersection() 메서드, 합집합을 위한 .union() 메서드, 차집합을 위한 .difference() 메서드가 존재합니다.
말씀하신 numpy는 제가 사용빈도가 낮아서 관련된 함수로서 어떤 것이 있는지 잘 모르겠네요 ㅠㅠ
그럼 편안한 밤 되시고 안녕히 주무세요!
5년 전
명량폐인님의 자료나 팁은 매우 신박함. 암튼 대단하십니다. 좋은 팁 감사드립니다. ^^
5년 전
감사합니다~
게시글 목록
| 번호 | 제목 |
|---|---|
| 17523 | |
| 17516 | |
| 17515 | |
| 17514 |
PHP
PHP 배열순설정
1
|
| 17498 |
PHP
PHP로 PDF파일 다루기
4
|
| 17493 | |
| 17490 | |
| 17487 | |
| 17485 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기 7 - JSONP
5
|
| 17481 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기 6- CORS
1
|
| 17478 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기5- 파일업로드
1
|
| 17477 | |
| 17474 | |
| 17473 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기4 - JSON
|
| 17472 | |
| 17470 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기2 - POST
|
| 17469 |
JavaScript
jQuery없이 네티브자바스크립트로 서버에 요청보내기1 - GET
2
|
| 17463 |
JavaScript
express로 간단한 부트스트랩 내비게이션 메뉴 생성기(아주 쉬움)
|
| 17462 | |
| 17461 |
PHP
PHP로 채트서버 만들기
|
| 17460 |
JavaScript
ThreeJS로 3디 지구 만들기
|
| 17458 | |
| 17457 |
PHP
PHP 랜덤생성하기
|
| 17454 | |
| 17453 |
MySQL
DB백업코드
5
|
| 17448 |
JavaScript
숫자에 천단위로 콤마(,) 찍기
11
|
| 17447 | |
| 17446 | |
| 17445 | |
| 17444 |
node.js
nodejs 에서 CSV파일 파싱하여 배열로 변환하기
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기