
풀이.
우선 좌표를 입력받아 배열에 저장을하고 정렬을 해준다
그리고 좌표의 최솟값이 -1000000000 이기때문에 now 값은 음수float('inf')값으로 설정을 하고
그래프를 반복문으로 돌면서 now 값이 start 값 보다 적다면 now 값을 start 값으로 설정하고
now 값이 end 값 보다 적다면 end - now 값을 결과 값에 저장한다 사실상 end - start의 길이를 구한다고 생각하면 되는데 여러번 선이 그인곳은 한번만 계산해야하기 때문에 now 값을 저장하는 것이다.
소스코드.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
input = sys.stdin.readline | |
n = int(input()) | |
point = [] | |
for i in range(n): | |
x, y = map(int, input().split()) | |
point.append([x, y]) | |
point.sort() | |
now = -float('inf') | |
result = 0 | |
for i in range(n): | |
start, end = point[i] | |
if now < start: | |
now = start | |
if now < end: | |
result += end - now | |
now = end | |
print(result) |