
내가 작성한 코드
class Solution {
public int solution(int[][] lines) {
int[] line = new int[200]; // 선분의 범위를 저장할 배열 >> 문제에서 -100 ~ 100까지의 범위를 가진다고 했으므로 200으로 설정
int answer = 0;
// 각 배열을 돌면서 선분에 해당하는 범위 +1
for (int i = 0; i < lines.length; i++) {
for (int j = lines[i][0] + 100; j < lines[i][1] + 100; j++) {
line[j]++;
}
}
// 1보다 크면 겹친상태 >> answer++을 통해 계산
for (int i = 0; i < 200; i++) {
if (line[i] > 1) {
answer++;
}
}
return answer;
}
}
다른 사람의 코드
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;
}
}
나랑 같은 방식이지만 경우의 수가 적기 때문에 if문을 통해 선분의 범위를 +1 하는 코드
Share article