문제
내가 작성한 정답
class Solution {
public int solution(int[][] lines) {
int answer = 0;
int[] part = new int[201];
for(int[] line:lines){
for(int i=line[0]; i<line[1]; i++){
part[i+100]++;
}
}
for(int i:part){
if(i>=2) answer++;
}
return answer;
}
}다른 사람들의 정답
import java.util.*;
class Solution {
public int solution(int[][] lines) {
Map<Integer, Integer> map = new HashMap<>();
for (int[] line : lines) {
int from = Math.min(line[0], line[1]);
int to = Math.max(line[0], line[1]);
for (int i = from; i < to; i++) {
map.merge(i, 1, Integer::sum);
}
}
return (int) map.values().stream().filter(i -> i > 1).count();
}
}
class Solution {
public int solution(int[][] lines) {
int answer = 0;
for (int i = -100; i < 100; i++) {
int line = 0;
if (lines[0][0]<=i && lines[0][1]>i) line++;
if (lines[1][0]<=i && lines[1][1]>i) line++;
if (lines[2][0]<=i && lines[2][1]>i) line++;
if(line > 1) answer++;
}
return answer;
}
}Share article