코딩
백준 2170. 선 긋기 파이썬(PYTHON)
무는빼주세요
2020. 11. 14. 14:52
문제링크 : www.acmicpc.net/problem/2170
2170번: 선 긋기
첫째 줄에 선을 그은 횟수 N(1≤N≤1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점이 주어진다. 선택한 지점은 -1,000,000,000 이상 1,000,000,000 이하의 정수이다.
www.acmicpc.net
import sys
def solution(lines,N):
lines.sort(key = lambda x:(x[0],-x[1]))
answer = lines[0][1]-lines[0][0]
tempstart=lines[0][0]; tempend=lines[0][1]
for i in range(1,N):
start = lines[i][0]
end = lines[i][1]
if start >= tempend:
answer += end-start
tempstart = start; tempend = end
elif tempstart <= end <= tempend:
continue
elif start <= tempend and end >= tempend:
answer+= end - tempend
tempend=end
return answer
def main():
N = int(input())
lines = list()
for i in range(N):
line = list(map(int,(sys.stdin.readline().split())))
lines.append(line)
print(solution(lines,N))
main()