문제 설명
직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하려고 합니다.
점 3개의 좌표가 들어있는 배열 v가 매개변수로 주어질 때, 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 return 하도록 solution 함수를 완성해주세요. 단, 직사각형의 각 변은 x축, y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다.
제한사항
- v는 세 점의 좌표가 들어있는 2차원 배열입니다.
- v의 각 원소는 점의 좌표를 나타내며, 좌표는 [x축 좌표, y축 좌표] 순으로 주어집니다.
- 좌표값은 1 이상 10억 이하의 자연수입니다.
- 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 [x축 좌표, y축 좌표] 순으로 담아 return 해주세요.
입출력 예
v | result |
[[1, 4], [3, 4], [3, 10]] | [1, 10] |
[[1, 1], [2, 2], [1, 2]] | [2, 1] |
입출력 예 설명
입출력 예 #1
세 점이 [1, 4], [3, 4], [3, 10] 위치에 있을 때, [1, 10]에 점이 위치하면 직사각형이 됩니다.
입출력 예 #2
세 점이 [1, 1], [2, 2], [1, 2] 위치에 있을 때, [2, 1]에 점이 위치하면 직사각형이 됩니다.
✔ Solution
def solution(v):
x = []
y = []
for i in v :
x.append(i[0])
y.append(i[1])
x_c = []
for i in x :
x_c.append(x.count(i))
y_c = []
for i in y :
y_c.append(y.count(i))
t = []
for i in range(len(y_c)) :
if x_c[i] == 1 :
t.append(x[i])
for i in range(len(y_c)) :
if y_c[i] == 1 :
t.append(y[i])
return t
✔ Solution 2
def solution(v):
answer = []
if v[0][0]==v[1][0]:
answer.append(v[2][0])
elif v[0][0]==v[2][0]:
answer.append(v[1][0])
else:
answer.append(v[0][0])
if v[0][1]==v[1][1]:
answer.append(v[2][1])
elif v[0][1]==v[2][1]:
answer.append(v[1][1])
else:
answer.append(v[0][1])
return answer
✔ Solution 3
def solution(v):
x = v[0][0] ^ v[1][0] ^ v[2][0]
y = v[0][1] ^ v[1][1] ^ v[2][1]
answer = [x, y]
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 내 p와 y의 개수 - Level 1 (0) | 2022.01.20 |
---|---|
[프로그래머스] 문자열 다루기 기본 - Level 1 (0) | 2022.01.20 |
[프로그래머스] 가장 큰 정사각형 찾기 (0) | 2022.01.20 |
[프로그래머스] 순열 검사 문제 - Level 1 (0) | 2022.01.20 |
[프로그래머스] 자릿수 더하기 문제 - Level 1 (0) | 2022.01.20 |