프로그래머스의 데모테스트 문제
풀이 1. 해시
x좌표가 각각 2번씩 등장하여야 사각형을 이룰 수 있으므로 1번 등장하는 좌표를 찾아서 return하면 된다. 이건 y좌표도 마찬가지.
import collections
def solution(v):
answer = []
count_x = collections.defaultdict(int)
count_y = collections.defaultdict(int)
for i in v:
count_x[i[0]]+=1
count_y[i[1]]+=1
for i in count_x:
if count_x[i] == 1:
answer.append(i)
for i in count_y:
if count_y[i] == 1:
answer.append(i)
return answer
import collections
def solution(v):
answer = []
for i in (zip(*v)):
a = collections.Counter(i)
for j in a:
if a[j]==1:
answer.append(j)
return answer
풀이 2. XOR 연산
A xor A = 0
A xor A xor B = B
같은 값 두 개와 다른 값 한 개를 XOR 하면 다른 값 한 개가 나온다는 원리
def solution(v):
answer = []
answer.append(v[0][0]^v[1][0]^v[2][0])
answer.append(v[0][1]^v[1][1]^v[2][1])
return answer
def solution(v):
answer = [0,0]
for x,y in v:
answer[0] ^= x
answer[1] ^= y
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스/Python] 두 개 뽑아서 더하기(조합) (0) | 2020.12.22 |
---|---|
[프로그래머스/Python] 여행경로(DFS) (0) | 2020.12.22 |
[프로그래머스/Python] 더 맵게(힙) (0) | 2020.12.21 |
[프로그래머스/Python] 큰 수 만들기(그리디) (0) | 2020.12.19 |
[프로그래머스/Python] 피보나치 수(DP) (0) | 2020.12.17 |