https://school.programmers.co.kr/learn/courses/30/lessons/120876
1. 리스트의 [0]번째 원소로 내림차순 정렬
2. 스택으로 저장하여 pop()
3. pop() 한 값의 [1]번쨰 원소와 남은 배열의 [0]번째 원소를 비교하여
차이값을 answer에 더하기
class Solution {
public int solution(int[][] lines) {
int answer = 0;
Arrays.sort(lines, (o1, o2) -> o2[0] - o1[0]);
Stack<int[]> stacks = new Stack<>();
for (int[] line : lines) {
stacks.add(line);
}
while (!stacks.isEmpty()) {
int[] arr = stacks.pop();
for (int[] stack : stacks) {
if (arr[1] > stack[0]) {
answer += (arr[1] - stack[0]);
}
}
}
return answer;
}
}
lines = {{0, 5}, {1, 10}, {3, 9}} 0 5
1 10
3 9
# 예상 답 : 8 (1 - 9)
# 내가 구한 풀이 답 : 13 (1-5, 3-5, 3-10)
9 <- 이부분도 9로 인식되어야하지만 10으로 인식
class Solution {
public int solution(int[][] lines) {
int answer = 0;
int[] arr = new int[200];
for (int[] line: lines) {
for (int i = line[0]+100; i < line[1]+100; i++) {
arr[i] += 1;
}
}
for (int i = 0; i < 200; i++) {
if (arr[i] >= 2) {
answer++;
}
}
return answer;
}
}