Algorithm/프로그래머스
[프로그래머스] 직사각형 넓이 구하기 (Java)
Carroti
2022. 10. 20. 15:21
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
해시셋
풀이
두 개의 해시셋을 만들어 x의 좌표들과 y의 좌표들을 각각 저장한다.
각 셋에는 두 개의 좌표만 저장되기 때문에 0번째 값과 1번째 값의 차이의 절댓값이 가로, 혹은 세로의 길이가 된다.
따라서 두 절댓값을 곱하면 직사각형의 넓이를 구할 수 있다.
코드
import java.util.*;
class Solution {
public int solution(int[][] dots) {
HashSet<Integer> xset = new HashSet<>();
HashSet<Integer> yset = new HashSet<>();
for(int[] dot: dots) {
xset.add(dot[0]);
yset.add(dot[1]);
}
ArrayList<Integer> xlist = new ArrayList<>(xset);
ArrayList<Integer> ylist = new ArrayList<>(yset);
return Math.abs(xlist.get(0) - xlist.get(1)) * Math.abs(ylist.get(0) - ylist.get(1));
}
}