알고리즘

프로그래머스 - 겹치는 선분의 길이

계양 꿀주먹 2024. 4. 6. 00:52

 


 

class Solution {
    public int solution(int[][] lines) {
        int answer = 0;
        int[] cnt = new int[201];   // -100 ~ 100
        
        for(int i = 0; i < lines.length; i++) {
            for(int j = lines[i][0] + 100; j < lines[i][1] + 100; j++) {
                cnt[j]++;
            }
        }
        
        for(int i = 0; i < cnt.length; i++) {
            if(cnt[i] > 1) answer++;
        }
        
        return answer;
    }
    
}

 

선의 범위가 -100 ~ 100 까지이므로 0을 포함한 크기가 201인 배열을 만들어 입력 받은 선을 겹치게 하기 위한 선을 만들어 줍니다.

입력받은 각 선의 시작부터 끝까지 새롭게 만든 선위로 카운트를 세어주고 마지막에 카운트가 2이상인 선이 겹친 갯수를 세어 정답을 반환합니다.