Loading the catalog…
Loading the catalog…
프로그래머스 입문 겹치는 선분의 길이 (🔗 링크: 코딩테스트 > 코딩테스트 입문 > 겹치는 선분의 길이 ) 문제설명 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines 가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. lines 가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. 제한사항 lines 의 길이 = 3 lines 의 원소의 길이 = 2 모든 선분은 길이가 1 이상입니다. lines 의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양 끝점 입니다. -100 ≤ a < b ≤ 100 입출력 예 lines result [[0, 1], [2, 5], [3, 9]] 2 [[-1, 1], [1, 3], [3, 9]] 0 [[0, 5], [3, 9], [1, 10]] 8 문제풀이 👩💻 문제 풀기 class Solution { public int solution(int[][] lines) { int[] arr = new int[201]; //음수 100개, 0, 양수 100개 for (int[] line : lines) { int start = line[0] + 100; int end = line[1] + 100; for (int i = start; i < end; i++) { arr[i]++; } } int answer = 0; for (int count : arr) { if (count >= 2) { answer++; } } return answer; } } 🧐 코드 풀이 음수 좌표를 배열 인덱스로 바꾸기 ( +100 ) 선분 좌표가 $-100$부터 $100$까지라 배열 인덱스로 바로 쓸 수 없다. 그래서 모든 좌표에 +100을 더해 $0 \sim 200$ 범위로 맞춘다. 기준점인 $0$은 배열의 $100$번 인덱스가 된다. 선분이 지나가는 칸(구간) 채우기 각 선분의 시작 인덱스부터 끝 인덱스 -1 까지 1 단위 칸을 순회하며 카운트를 1씩 늘려준다. 2번 이상 지나간 칸의 개수 세기 배열 값이 2 이상인 칸은 최소 2개 이상의 선분이 겹친 구간이다. 이 칸들의 총개수를 구하면 겹친 부분의 전체 길이가 된다. 3개 이상의 선분이 겹쳐도 중복 없이 깔끔하게 처리된다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
[JAVA] 겹치는 선분의 길이. 프로그래머스 입문 겹치는 선분의 길이 (🔗 링크: 코딩테스트 > 코딩테스트 입문 > 겹치는 선분의 길이 ) 문제설명 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines 가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. lines 가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. 제한사항 lines 의 길이 = 3 lines 의 원소의…