[프로그래머스] 직사각형 넓이 구하기 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
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 키패드 누르기 - Lv.1 (56) | 2023.09.28 |
---|---|
[프로그래머스] 카드 뭉치 - Lv.1 (28) | 2023.09.20 |
[프로그래머스] 안전지대 - Lv.0 (29) | 2023.09.14 |
[프로그래머스] 과일 장수 - Lv.1 (32) | 2023.09.12 |
[프로그래머스] 다트 게임 - Lv.1 (31) | 2023.09.12 |