이 문제는 첨에 해쉬로 접근했는데(물론 그 방법으로도 풀 수 있겠지만) 나는 못풀었다. 해쉬로 접근하여 각 좌표의 값들이 같게 만드는 경우를 생각했지만, x좌표와 y좌표가 꼬여버린다는 아주 중요한 문제가 발생했다.
from collections import Counter
def solution(v):
# 총 좌표의 x와 y의 갯수는 같아야한다.
result = []
for i in zip(*v):
y = Counter(i)
result.extend([i for i in y if y[i] == 1])
return result
위의 풀이를 보고 파이썬 사랑이 폭발해버렸다💥💛
+추가) 다른 분의 pythonic한 좋은 코드가 있어 가져와봤다. 이분은 defaultdict를 이용하여 dictionary의 속성을 활용했다.
from collections import defaultdict
def solution(v):
hash_x, hash_y = defaultdict(int), defaultdict(int)
for x, y in v:
hash_x[x] += 1
hash_y[y] += 1
x = [key for key, value in hash_x.items() if value == 1]
y = [key for key, value in hash_y.items() if value == 1]
return x + y