겹치는 선분의 길이

kyle·2023년 3월 27일
0
post-custom-banner

문제 설명
선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요.

선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다.

제한사항
lines의 길이 = 3
lines의 원소의 길이 = 2
모든 선분은 길이가 1 이상입니다.
lines의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양 끝점 입니다.
-100 ≤ a < b ≤ 100

입출력 예

linesresult
[[0, 1], [2, 5], [3, 9]]2
[[-1, 1], [1, 3], [3, 9]]0
[[0, 5], [3, 9], [1, 10]]8

필수 키워드

아이디어의 중요성을 느꼈다.
리스트로 모든 선분과 겹쳐진 부분을 생각하는 아이디어의 도출이 중요했다.

구현 코드

def solution(lines):
    # 길이가 200인 리스트(선분의 길이를 넣을 리스트)
    list_lines=[0]*200
    
    # 선분의 시작과 끝값이 음수가 될 경우가 있기 떄문에 100씩 다 더한다
    for i in lines:
        start = i[0]+100
        end = i[1] + 100
        for j in range(start,end):
            list_lines[j] = list_lines[j] + 1
            
    # list_lines를 돌면서 값이 2 이싱인경우 answer에 1씩 더한다.
    answer = 0
    print(list_lines)
    for i in list_lines:
        if i > 1:
            answer = answer + 1
        
    return answer
profile
성장하는 개발자
post-custom-banner

0개의 댓글