티스토리 뷰

728x90

www.acmicpc.net/problem/15922

풀이

먼저 첫번째 [x, y] 값을 x, y 변수에 각각 담아준다.

그리고 n-1번 반복되는 for문 안에서 새로운 정수쌍에 대해 xx, yy로 입력받는다.

전에 입력받은 x, y 와 비교하여 선분의 길이를 구하면 된다.

 

1. x == xx 일 때

  y의 값만 yy로 바꿔준다.

 

2. y>=xx and yy>y 일 때

  y의 값만 yy로 바꿔준다.

 

3. y<xx 일 때

  x - y 값을 result 값에 넣어주고, x = xx, y = yy 해준다.

 

for문이 종료되고, result 값에 y-x 값만 더해주면 된다.

소스코드

n = int(input())

x, y = map(int, input().split())

result = 0

for i in range(n-1):
    xx, yy = map(int,input().split())
    if xx == x:
        y = yy
    elif y>=xx and yy>y:
        y = yy
    elif y<xx:
        result += abs(x-y)
        x = xx
        y = yy
    
print(result+abs(y-x))
반응형