티스토리 뷰
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120860
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
제한사항
- dots의 길이 = 4
- dots의 원소의 길이 = 2
- -256 < dots[i]의 원소 < 256
- 잘못된 입력은 주어지지 않습니다.
풀이
class Solution {
fun solution(dots: Array<IntArray>): Int {
dots.sortBy { it.first() }
val a = Math.abs(dots[0][1] - dots[1][1])
val b = Math.abs(dots[2][0] - dots[1][0])
return a * b
}
}
sortBy 함수를 사용하여 x좌표 기준으로 정렬한다.
첫번째 원소와 두번째 원소 사이의 y좌표 차이를 a로,
두번째 원소와 세번째 원소 사이의 x좌표 차이를 b로 계산한다.
디버깅
fun main() {
val dots = arrayOf(
intArrayOf(-1, -1),
intArrayOf(1, 1),
intArrayOf(1, -1),
intArrayOf(-1, 1)
)
solution(dots)
}
반응형
'Algorithm > programmers_lv0' 카테고리의 다른 글
프로그래머스 lv0 외계어 사전 (Kotlin) (0) | 2023.05.09 |
---|---|
프로그래머스 lv0 캐릭터의 좌표 (Kotlin) (0) | 2023.05.08 |
프로그래머스 lv0 연속된 수의 합 (Kotlin) (0) | 2023.05.06 |
프로그래머스 lv0 로그인 성공? (Kotlin) (0) | 2023.05.05 |
프로그래머스 lv0 치킨 쿠폰 (Kotlin) (0) | 2023.05.04 |
댓글