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년 전
감사합니다~
게시판 목록
개발자팁
개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5156 | PHP |
|
2년 전 | 972 | |
| 5155 | JavaScript |
|
2년 전 | 856 | |
| 5154 | PHP |
|
2년 전 | 1770 | |
| 5153 | 웹서버 |
|
2년 전 | 815 | |
| 5152 | PHP |
|
2년 전 | 1000 | |
| 5151 | PHP |
|
2년 전 | 859 | |
| 5150 | node.js | 2년 전 | 1292 | ||
| 5149 | OS | 2년 전 | 1524 | ||
| 5148 | 웹서버 | 2년 전 | 922 | ||
| 5147 | PHP | 2년 전 | 6904 | ||
| 5146 | JavaScript | 2년 전 | 1706 | ||
| 5145 | PHP | 2년 전 | 935 | ||
| 5144 | PHP | 2년 전 | 1416 | ||
| 5143 | JavaScript | 2년 전 | 821 | ||
| 5142 | PHP |
|
2년 전 | 912 | |
| 5141 | 웹서버 | 2년 전 | 2409 | ||
| 5140 | 기타 | 2년 전 | 1552 | ||
| 5139 | JavaScript | 2년 전 | 1197 | ||
| 5138 | PHP | 3년 전 | 1509 | ||
| 5137 | MySQL | 3년 전 | 1696 | ||
| 5136 | PHP | 3년 전 | 2000 | ||
| 5135 | PHP | 3년 전 | 1946 | ||
| 5134 | JavaScript |
오토소프트
|
3년 전 | 1099 | |
| 5133 | PHP |
|
3년 전 | 1134 | |
| 5132 | 웹서버 | 3년 전 | 1292 | ||
| 5131 | OS | 3년 전 | 1927 | ||
| 5130 | OS | 3년 전 | 1407 | ||
| 5129 | OS | 3년 전 | 1794 | ||
| 5128 | OS | 3년 전 | 1805 | ||
| 5127 | OS | 3년 전 | 922 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기