https://school.programmers.co.kr/learn/courses/30/lessons/120876
처음 이 문제를 보고 케이스를 나눠서 풀어야 되나.. 생각이 많았던 문제다.
일정한 규칙이 보이는 문제도 아니고! ㅠ
결국 구글링 해서 알아낸 힌트는 선분의 길이가 아닌 점이 지나는 곳에 집중한다는 것이다.
-100 ~ 100까지의 범위니까 200개의 숫자를 담을 수 있는 배열을 만들고, 지나는 점을 모두 카운트하는 것이다.
그리고 점이 두 번이상 겹치는 것의 개수를 구하면 답이 나온다!
class Solution {
public int solution(int[][] lines) {
int answer = 0;
int[] arrays = new int[201];
int startIdx = 0;
int endIdx = 0;
for(int i = 0; i < 3; i++){
startIdx = 100+lines[i][0];
endIdx = 100+lines[i][1];
for(int j = startIdx; j < endIdx; j++){
arrays[j]++;
}
}
for(int i = 0; i <= 200; i++){
if(arrays[i] > 1){
answer++;
}
}
return answer;
}
}
'Algorithm' 카테고리의 다른 글
[Algorithm] 프로그래머스_네트워크(JAVA) (0) | 2024.12.11 |
---|---|
[Algorithm] 프로그래머스_K번째수(JAVA) (2) | 2024.12.11 |
[Algorithm] 프로그래머스_올바른 괄호(JAVA) (3) | 2024.12.10 |
[Algorithm] 프로그래머스_타겟넘버(JAVA) (3) | 2024.12.10 |
[Algorithm] 프로그래머스_특이한 정렬(JAVA), 우선순위 큐, Comparator (6) | 2024.12.05 |