[알고리즘문제풀기] 겹치는 선분의 길이

silver's avatar
Jan 23, 2026
[알고리즘문제풀기] 겹치는 선분의 길이

문제

내가 작성한 정답

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

silver