반응형
250x250
Notice
Recent Posts
Recent Comments
Link
이롭게 현명하게
[programmers - 120876] Lv0 겹치는 선분의 길이/ Python 본문
728x90
반응형
문제
풀이
코드 설명
코드
[programmers - 120876] Lv0 겹치는 선분의 길이 / Python
[🔗문제🔗]
[제한사항]
[입출력 예시]
번호 | 입력 | 출력 |
1 | [[0, 1], [2, 5], [3, 9]] | 2 |
2 | [[-1, 1], [1, 3], [3, 9]] | 0 |
3 | [[0, 5], [3, 9], [1, 10]] | 8 |
번호 | 입력 | 출력 |
4 | [[4, 7], [4, 5], [6, 7]] | 2 |
5 | [[1, 2], [2, 3], [3, 4]] | 0 |
6 | [[0, 9], [1, 1], [2, 5]] | 3 |
7 | [[0, 2], [-3, -1], [-2, 1]] | 2 |
8 | [[0, 3], [-3, -1], [-2, 3]] | 4 |
9 | [[0, 3], [0, 3], [0, 3]] | 5 |
10 | [[-3, -1], [-2, 3], [2, 3]] | 2 |
11 | [[0, 6], [0,6], [2, 4]] | 2 |
12 | [[1, 2], [1, 3], [1, 2]] | 1 |
13 | [[1, 12], [3, 6], [2, 4]] | 4 |
14 | [[0, 5], [4, 9], [1, 10]] | 8 |
15 | [[0, 10], [1, 3], [4, 7]] | 5 |
16 | [[1, 3], [2, 5], [0, 7]] | 4 |
17 | [[1, 3], [4, 7], [2, 8]] | 4 |
[풀이]
lines = [[0, 5], [3, 9], [1, 10]]이 있다. 선분의 0~10까지 있다.
첫 번째 선분은 [0,5]이다.
두 번째 선분은 [3,9]이다.
세 번째 선분은 [1,10]이다.
이때 두 개 이상의 선분이 겹치는 총 길이는 다음과 같다.
두 개 이상 겹치는 선분은 어떻게 구해야 할지 생각하는 게 어려웠다.
선분의 길이별로 횟수를 체크하면 가능할 거 같다는 생각이 들었다.
어려웠던 부분을 뽑자면 그어지는 선분의 길이였다.
lines에서 최솟값과 최댓값을 사용해 list를 생성하여 인덱스를 활용하였지만 런타임 아웃으로 통과하지 못했다.
-100~100의 범위에서 음수를 어떻게 적용해야 할지를 많은 시간이 들여 생각하였다.
0~200의 범위의 리스트를 만들어 사용하여 해결하였다.
[코드 설명]
line = [0 for _ in range(200)] | -100~100 까지의 범위에서 해당 점에 선분이 그어진 횟수 [-3,-1]은 line [-3 + 100]로 line[97] 인덱스가 -3을 의미한다. line[-1+100]로 line[99] 인덱스가 -1을 의미한다. |
for i in range(3): start = lines[i][0] end = lines[i][1] for j in range(start,end): line[j+100]+=1 |
그어지는 선분의 시작점 :start 그어지는 선분의 끝 점 : end for j : 선분의 길이 만큼 +1 |
for i in line: if i>=2: # 또는 if i>1: answer+=1 |
두개의 선분이 겹치는 경우 answer에 +1 두 개 이상의 선분이 겹친 구간의 길이를 알 수 있다. |
<코드>
def solution(lines):
answer = 0
line = [0 for _ in range(200)]
for i in range(3):
start = lines[i][0]
end = lines[i][1]
for j in range(start,end):
line[j+100]+=1
for i in line:
if i>=2: # 또는 if i>1:
answer+=1
return answer
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!
728x90
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[programmers - 120956] Lv0 옹알이 (1) / Python (0) | 2023.08.28 |
---|---|
[programmers - 120875] Lv0 평행 / Python (0) | 2023.08.25 |
[programmers - 120866] Lv0 안전지대 / Python (0) | 2023.08.19 |
Comments