프로그래머스 Lv 1. 나머지 한 점 풀이를 통한 배운 내용을 정리한다.
문제는 간단하다. x, y축에 평행한 직사각형의 세 점이 주어질 때, 나머지 한 점이 어디있는지를 찾는 것이 문제이다.
각 x, y값 별로 2개씩 나와야 한다는 것에서 1개만 나온 값을 찾는 것이 목표이다.
내가 짠 코드는 다음과 같다.
def solution(v):
answer = [0, 0]
x_axis = [0, 0, 0]
y_axis = [0, 0, 0]
for i in range(0, 3):
x_axis[i] = v[i][0]
y_axis[i] = v[i][1]
if x_axis[0] == x_axis[1]:
answer[0] = x_axis[2]
else:
if x_axis[0] == x_axis[2]:
answer[0] = x_axis[1]
else:
answer[0] = x_axis[0]
if y_axis[0] == y_axis[1]:
answer[1] = y_axis[2]
else:
if y_axis[0] == y_axis[2]:
answer[1] = y_axis[1]
else:
answer[1] = y_axis[0]
return answer
아주 단순하게 x, y의 세 값이 같은지 확인하여, 코드를 짰다.
그런데, 아예 counter를 세는 방법이 collections으로 존재한다.
import collections
def solution(v):
answer = []
for i in (zip(*v)):
cnt = collections.Counter(i)
for crd in cnt:
if cnt[crd] == 1:
answer.append(crd)
return answer
'알고리즘 & PS' 카테고리의 다른 글
[Python] 프로그래머스 Lv 3 - N으로 표현 (0) | 2021.04.21 |
---|---|
[Python] 프로그래머스 Lv 1 - 완주하지 못한 선수 (0) | 2021.04.21 |
[Python] 프로그래머스 Lv 2 - 큰 수 만들기 (0) | 2021.04.21 |
[Python] 프로그래머스 Lv 2 - 가장 큰 수 (0) | 2021.04.21 |
[알고리즘] Stack - 수식의 표현(수정) (0) | 2021.04.20 |