[백준] 2170번 선긋기 - 파이썬/정렬

JinUk Lee·2023년 1월 31일
0

백준 알고리즘

목록 보기
32/78

https://www.acmicpc.net/problem/2170


import sys

N = int(sys.stdin.readline())

input_list = []

line = []

for i in range(N):

    a,b = map(int,sys.stdin.readline().split())

    input_list.append((a,b))

input_list.sort()

start = input_list[0][0]
end = input_list[0][1]
ans = 0
for i in input_list:

    if i==(start,end):
        continue

    if end>=i[1]:
        continue

    elif i[0]<=end<i[1]:

        end = i[1]

    elif i[0] > end:
        ans+= end-start

        start= i[0]
        end=i[1]


ans += end-start

print(ans)

입력값을 양쪽 다 비교해야 답을 구할 수 있지만, 입력값을 담은 리스트를 정렬하면 시작점은 비교할 필요가 없다.

따라서 끝점의 크기만 비교해가면서 답을 구하면 된다.

profile
개발자 지망생

0개의 댓글