<로직 고민>
- x좌표가 같을 때 y좌표의 차, y좌표가 같을 때 x좌표의 차를 구한 다음 그 둘을 곱하면 될 것 같은데
- 그걸...어떻게 .....찾아내는지......?
- 난 또 for문 돌릴 생각을 하고 있고....근데 막히고...
- 모르겠어서 그냥 참고 코드를 봤다
- 근데도 모르겠다 ㅋㅋㅋ
- 모르겠어서 프린트문을 다 찍어봤다
def solution(dots):
answer = abs((dots[1][0]-dots[0][0])*(dots[2][1]-dots[0][1])-(dots[2][0]-dots[0][0])*(dots[1][1]-dots[0][1]))
return answer
dots = [[-1, -1], [1, 1,], [1, -1], [-1, 1]]
print(dots[1][0]-dots[0][0]) # 2
print(dots[2][1]-dots[0][1]) # 0
print(dots[2][0]-dots[0][0]) # 2
print(dots[1][1]-dots[0][1]) # 2
- 일단 내가 생각한 풀이법은 아닌 것 같다
- 근데 이대로 채점했더니 점수를 10점이나 얻었다...
- 그동안 1점 아님 2점 얻었었는데....나 진짜 허접하게 풀고 있었구나.............
<다른 사람 풀이>
- 천재풀이1
def solution(dots):
return (max(dots)[0] - min(dots)[0])*(max(dots)[1] - min(dots)[1])
- 이것도 이해가 안 가서 프린트문을 찍어봤다
dots = [[0,-2], [0,3], [3,-2], [3,3]]
print(max(dots)[0]) # 3
print(min(dots)[0]) # 0
print(max(dots)[1]) # 3
print(min(dots)[1]) # -2
print(max(dots)) # [3, 3]
print(min(dots)) # [0, -2]
print(solution(dots)) # 15
- max(dots), min(dots)이 처음엔 이해가 안 갔다
- 안에 내용물이 2개인데 어떻게 크고 작음을 구분하지? 싶어서...
- 근데 출력 해보니 두 내용물의 합을 기준으로 크고 작음을 구분하는 것 같다 아마도
- 그렇게 해서 max(dots)로 나오는 값은 가장 오른쪽 위에 있는 점이고, min(dots)로 나오는 값은 가장 왼쪽 아래에 있는 점이다
- 두 점의 x좌표의 차, y좌표의 차를 곱하면 된다...!