[코딩 테스트 연습 입문] 직사각형 넓이 구하기
2022. 12. 29. 17:41ㆍcode/[프로그래머스] python
문제
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
❗제한사항❗
- dots의 길이 = 4
- dots의 원소의 길이 = 2
- -256 < dots[i]의 원소 < 256
- 잘못된 입력은 주어지지 않습니다.
입출력 예
입출력 예 설명
입출력 예 #1
- 좌표 [[1, 1], [2, 1], [2, 2], [1, 2]] 를 꼭짓점으로 갖는 직사각형의 가로, 세로 길이는 각각 1, 1이므로 직사각형의 넓이는 1 x 1 = 1입니다.
입출력 예 #2
- 좌표 [[-1, -1], [1, 1], [1, -1], [-1, 1]]를 꼭짓점으로 갖는 직사각형의 가로, 세로 길이는 각각 2, 2이므로 직사각형의 넓이는 2 x 2 = 4입니다.
✔풀이
def solution(dots):
x=[dots[0][0],dots[1][0],dots[2][0],dots[3][0]]
x.sort()
max_x,min_x=x[-1],x[0]
y=[dots[0][1],dots[1][1],dots[2][1],dots[3][1]]
y.sort()
max_y,min_y=y[-1],y[0]
answer=abs(max_x-min_x) * abs(max_y-min_y)
return answer
📝설명
이중 리스트의 인덱스로 x좌표와 y좌표를 각각 꺼내어 정렬한 후, 가장 큰 값과 작은 값을 도출해낸다.
가장 큰 값과 가장 작은 값을 구한 후, 뺀 값에 절댓값을 씌운 후 그 값들을 곱해주면 된다.
👑모범 답안
🔎max(dots)[0]은 각각의 리스트 인덱스 넘버 0에서 가장 큰 값을 불러온다.
마찬가지 각각의 x좌표와 y좌표의 최댓값과 최솟값을 구한 후 x끼리 빼고, y끼리 뺀 후 곱하면 된다.
👀느낀 점
: 이중 리스트에 대해 완벽히 숙지되지 않은 상태에서 풀다 보니 자연스레 코딩의 길이가 길어졌다.
하지만 분명 의미있는 과정이었다고.. 혼자 생각하고 있다..^^
이중 리스트에서도 max(내가 다른 이중 리스트)[각 리스트에서 원하는 인덱스 넘버]를 부르면 쉽게 비교할 수 있다는 걸 알게 되었다.
다음엔 야무지게 써먹어야지
💻 문제 출처
'code > [프로그래머스] python' 카테고리의 다른 글
[코딩 테스트 연습 입문] k의 개수 (0) | 2022.12.30 |
---|---|
[코딩 테스트 연습 입문] A로 B 구하기 (0) | 2022.12.30 |
[코딩 테스트 연습 입문] 최댓값 만들기 (2) (0) | 2022.12.29 |
[코딩 테스트 연습 입문] 잘라서 배열로 저장하기 (0) | 2022.12.29 |
[코딩 테스트 연습 입문] 7의 개수 (0) | 2022.12.29 |