https://school.programmers.co.kr/learn/courses/30/lessons/1833
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
정답률이 낮아 살짝 걱정됐는데, 생각보다 많이 어렵진 않았던 것 같다.
N이 최대 5000인 문제로,
x, y 좌표를 정렬을 해준 뒤 data를 i와 j로 하나씩 선택해가며
i, j 사이에 있는 쐐기가 있는지 확인하며 개수를 카운트한다.
import java.util.*;
class Solution {
public int solution(int n, int[][] data) {
Arrays.sort(data, (o1, o2) -> {
if(o1[0] == o2[0])
return o1[1] - o2[1];
return o1[0] - o2[0];
});
int result = 0;
for(int i = 0; i < n; i++){
for(int j = i + 1; j < n; j++){
if(data[i][0] == data[j][0] || data[i][1] == data[j][1])
continue;
boolean compare = true;
for(int k = i + 1; k < j; k++){
if(data[i][0] < data[k][0] && data[j][0] > data[k][0] &&
Math.min(data[i][1], data[j][1]) < data[k][1] &&
Math.max(data[i][1], data[j][1]) > data[k][1])
{
compare = false;
break;
}
}
if(compare){
result++;
}
}
}
return result;
}
}
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 기지국 설치 - Java (0) | 2024.09.22 |
---|---|
[프로그래머스] 등굣길 - Java (0) | 2024.09.22 |
[프로그래머스] 퍼즐 게임 챌린지 - Java (0) | 2024.09.12 |
[프로그래머스] 양과 늑대 - Java (0) | 2024.08.15 |
[프로그래머스] 두 큐 합 같게 만들기 - Java (0) | 2024.08.15 |