알고리즘 문제 해설 - 나머지 한 점
프로그래머스의 모의테스트는 프로그래머스의 시스템에 익숙해지기 위한 테스트이며, 문제 자체는 2018 1ST KAKAO BLIND RECRUITMENT와 전혀 관계없습니다. 다만 모의테스트의 풀이에 대한 요청이 있어
programmers.co.kr
프로그래머스의 데모테스트 문제
풀이 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 |