코딩테스트

[프로그래머스] 직사각형 넓이 구하기 - Lv.1

pyflu 2023. 9. 16. 11:32

[프로그래머스] 직사각형 넓이 구하기 Lv.1 - [파이썬/python]

 

https://school.programmers.co.kr/learn/courses/30/lessons/120860

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 

문제 설명

 

 

2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다.

직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때,

직사각형의 넓이를 반환(return)하는 문제입니다.

 

 

 

※ 제한사항

  • dots의 길이 = 4
  • dots의 원소의 길이 = 2
  • -256 < dots[i]의 원소 < 256
  • 잘못된 입력은 주어지지 않습니다.

 

 

더보기

직사각형 또는 정사각형은 모든 내각이 90도이고, 대각선이 서로 수평 또는 수직 방향으로 놓인 특별한 종류의 사각형입니다.

 

아래의 방법은 직사각형 또는 정사각형만 사용가능한 공식입니다. 

 

  • 가로 길이 계산
    가로 길이는 주어진 4개의 x 좌표 중에서 가장 큰 x 좌표와 가장 작은 x 좌표의 차이로 계산됩니다.
    이것은 사각형의 한 변의 길이가 됩니다.



  • 세로 길이 계산
    세로 길이는 주어진 4개의 y 좌표 중에서 가장 큰 y 좌표와 가장 작은 y 좌표의 차이로 계산됩니다.
    이것은 사각형의 다른 한 변의 길이가 됩니다.



  • 직사각형 넓이 계산
    가로 길이와 세로 길이를 곱하면 사각형의 넓이가 계산됩니다.
    이 과정은 사각형의 면적을 구하는 기본 원리입니다.

 

하지만 이 공식은 일반적인 비뚫어진 사각형(평행사변형)에는 적용할 수 없습니다.

비뚫어진 사각형은 대각선의 길이와 대각선 사이의 각도를 고려해야 하며, 이러한 경우에는 위에서 설명한 공식을 사용해야 합니다.

 

 

 




정답 주의!!!




 

 


def solution(dots):
   
    # 주어진 dots 리스트에서 각 꼭짓점의 좌표를 추출합니다.
    [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] = dots
   
    # 가로 길이를 계산합니다.
    # 가로 길이는 x 좌표의 최대값에서 최소값을 뺀 것으로 계산됩니다.
    width = max(x1, x2, x3, x4) - min(x1, x2, x3, x4)
   
    # 세로 길이를 계산합니다.
    # 세로 길이는 y 좌표의 최대값에서 최소값을 뺀 것으로 계산됩니다.
    height = max(y1, y2, y3, y4) - min(y1, y2, y3, y4)
   
    # 직사각형의 넓이를 계산하고 반환합니다.
    return width * height

728x90