python에서 2개의 set에 대해서 합집합, 교집합, 차집합, 대칭 차집합 등을 구하고 싶을 때가 있습니다. 어떻게 구하면 될까요? 먼저 set A에 속하지만, set B에 속하지 않는 원소들을 모두 구해봅시다. 그러려면 A에서 B를 빼면 됩니다. 3번째 줄에 C = (A - B)라고 했는데요. 이는 A와 B의 차집합을 구하라는 의미입니다. 이는 A에서 A와 B의 교집합을 빼는 것과 같습니다. A와 B의 교집합에 속하는 원소는 2이므로, A에서 원소 2가 빠지면 {1, 4}가 됩니다. 결과는 예상한 대로 나왔음을 알 수 있습니다. 교집합을 구해 봅시다. (A & B)는 set A와 set B의 교집합을 구합니다. A와 B 집합에 동시에 속하는 원소는 2입니다. 따라서 2만 출력됩니다. A 또는 B에 ..
코딩/파이선 검색 결과
안녕하세요. 가희배 3회 코딩테스트 문제들을 셋팅하면서 xml 형식을 파싱해야 되는 일이 생겼는데요. 파이썬에서 이를 간단하게 할 수 있었어요. xml.etree.ElementTree를 이용해서 간단하게 작성해 보았습니다. 먼저, temp.xml에는 위와 같은 내용들이 저장되어 있어요. html도 사실 보면 저 구조와 크게 다를 바가 없습니다. 이 친구를 읽어서, 태그에 달려있는 값들만 뽑아오도록 할게요. 먼저, ET.parse를 통해, temp.xml에 있는 내용들을 읽어서, tree화 시킵니다. 함수 설명은 위와 같은데요. XML document를 element tree로 변환한다고 되어 있어요. 다음에, iter를 돌릴 건데요. iter 함수를 썼어요. 레퍼런스 설명을 보면, tree iterato..
안녕하세요. 이번에도 예약글을 써야 겠어요. 파이썬으로 코테를 준비하시는 경우가 많은 걸로 들었어요. 보통 코테에서는, 전수 탐색과 구현을 버무린 이런 문제들이 종종 출제가 되곤 해요. 잘 읽어보면 아시겠지만, 8문제 세트 중에 2번째 문제로 출제하였습니다. 앞쪽에 배치하였다는 이야기는 풀어야 한다는 의미와도 일맥상통합니다. 그러한 문제들을 풀 때 product, permutations, combinations 함수를 알아두면 좋을 듯 해서 간단하게 소개해 보도록 하겠습니다. 먼저 product 함수입니다. iterable한 것에 대해서 카타시안 곱을 생성합니다. 이렇게만 들으면 뭔가 어려운 거 같습니다. 결과부터 보겠습니다. 어떤 식으로 생성되는지 눈치를 채셨을 텐데요. repeat를 2로 주었어요. ..
안녕하세요. 5일 만에 돌아온 코딩개 입니다. 제가 낸 코딩 테스트 문제 중에 heap 자료구조를 이용하는 문제가 있었습니다. 1회에 유독 많이 냈던 걸로 기억하는데요. 파이썬에서는 heapq 모듈과 tuple을 이용하면 날먹 수준으로 쉽게 구현하실 수 있어요. 예제 코드를 볼게요. 먼저 2번째 줄은 prioroity queue 역할을 할 배열을 선언한 거에요. 다음에 heappush를 하는데요. pq에 tuple (1, 2)를 넣습니다. 4번째 줄에는 (-1, 3)을 넣어요. 다음에, 5번째 줄에서, pq에서 맨 위에 있는 원소를 pop 하면서 맨 위에 있었던 원소를 가져오게 됩니다. 그리고 다시 (-1, 6)을 heap에 넣고, 7번째 줄에서 pq[0]에 무엇이 들어있는지만 봅니다. heappop하고..
예전에 파이썬 배열 회전을 설명하면서 대강 짚고 넘어간 것이 하나 있었습니다. packing과 unpacking이였습니다. 이것을 간단하게 소개만 하고 넘어가겠습니다. 먼저, 매개 변수 앞에 *를 붙이면, packing이 일어납니다. 예를 들어서, 6번째 줄에 인자 [1, 2], [3, 4], [5, 6]을 보냈습니다. 그러면, 함수가 호출이 되고 매개변수로 넘어올 때, [1, 2], [3, 4], [5, 6]이 tuple로 묶어집니다. tuple은 iterable 하니까, for loop로 순회 가능합니다. 따라서, foo([1, 2], [3, 4], [5, 6])을 호출하면 [1, 2], [3, 4], [5, 6] 순으로 출력됩니다. 당연하게도 foo([1, 2, 3], [4, 5, 6])을 호출하면..
최근댓글