728x90
반응형
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
제한사항
dots의 길이 = 4
dots의 원소의 길이 = 2
-256 < dots[i]의 원소 < 256
잘못된 입력은 주어지지 않습니다.
입출력 예
dots result
[[1, 1], [2, 1], [2, 2], [1, 2]] 1
[[-1, -1], [1, 1], [1, -1], [-1, 1]] 4
입출력 예 설명
입출력 예 #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입니다.
내 풀이
[Java]
class Solution {
public int solution(int[][] dots) {
int answer = 0;
int max[] = {-256, -256};
int min[] = {256, 256};
for(int i = 0; i < dots.length; i++){
if(dots[i][0] > max[0]){
max[0] = dots[i][0];
}
if(dots[i][0] < min[0]){
min[0] = dots[i][0];
}
if(dots[i][1] > max[1]){
max[1] = dots[i][1];
}
if(dots[i][1] < min[1]){
min[1] = dots[i][1];
}
}
int x = max[0] - min[0];
int y = max[1] - min[1];
answer = x * y;
return answer;
}
}
[C]
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// dots_rows는 2차원 배열 dots의 행 길이, dots_cols는 2차원 배열 dots의 열 길이입니다.
int solution(int** dots, size_t dots_rows, size_t dots_cols) {
int answer = 0;
int max = -256;
int min = 256;
for(int i = 0; i < dots_rows; i++){
if(dots[i][0] > max){
max = dots[i][0];
}
if(dots[i][0] < min){
min = dots[i][0];
}
}
int x = max - min;
max = -256;
min = 256;
for(int i = 0; i < dots_rows; i++){
if(dots[i][1] > max){
max = dots[i][1];
}
if(dots[i][1] < min){
min = dots[i][1];
}
}
int y = max - min;
answer = x * y;
return answer;
}
[Python]
def solution(dots):
answer = 0
x = max(dots)[0] - min(dots)[0]
y = max(dots)[1] - min(dots)[1]
answer = x * y
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/120860
728x90
반응형
'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글
[코딩테스트 Lv.0] 최댓값 만들기 (2) (0) | 2024.02.06 |
---|---|
[코딩테스트 Lv.0] 캐릭터의 좌표 (0) | 2024.02.05 |
[코딩테스트 Lv.0] 배열 원소의 길이 (0) | 2024.02.01 |
[코딩테스트 Lv.0] 컨트롤 제트 (0) | 2024.02.01 |
[코딩테스트 Lv.0] 소인수분해 (0) | 2024.01.31 |