[JAVA 문제 풀이] 78. 겹치는 선분의 길이

프로그래머스 (120876)
Stupefyee's avatar
Feb 10, 2025
[JAVA 문제 풀이] 78. 겹치는 선분의 길이
notion image

내가 작성한 코드

💡
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

stupefyee