STUDY/Code TEST
프로그래머스 직사각형 넓이 구하기
doosik
2023. 6. 14. 23:43
[level 0] 직사각형 넓이 구하기 - 120860
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
성능 요약
메모리: 33.4 MB, 시간: 0.04 ms
구분
코딩테스트 연습 > 코딩테스트 입문
채점결과
Empty
문제 설명
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots
가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
제한사항
dots
의 길이 = 4dots
의 원소의 길이 = 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입니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
코드
function solution(dots) {
let w
let h
for(let i=1;i<dots.length; i++)
{
if(dots[0][0] === dots[i][0]){
w = Math.abs(dots[0][1] - dots[i][1])
}
if(dots[0][1] === dots[i][1]){
h = Math.abs(dots[0][0] - dots[i][0])
}
}
return w*h
}
코드 설명
관건은 무작위로 준 꼭짓점 좌표를 비교해서 변의 길이를 구해야 하는 것이다.
문제에서 "2차원 좌표 평면에 변이 축과 평행한 직사각형"이라고 정의를 해놓았기 때문에
4개의 꼭짓점에서 x좌표가 같은 것과 y좌표가 같은 것을 구분해낸다면 변의 길이가 금방 나온다.
나는 for문으로 배열을 조회해서 x좌표, y좌표 값이 각각 같을 때 변의 가로,세로 길이를 도출해내는 방식으로 풀어냈다.