ALGORITHM/PYTHON

백준 BAEKJOON 32171번 울타리 공사 [PYTHON/파이썬]

칼코
반응형

 

 

 

 

 

백준 BAEKJOON 32171번 울타리 공사 [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅱ)

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

 

 

 

 

 

 

 

 

<풀이>

N개의 건물을 짓지만 첫 건물이 좌표의 기준이 되어야하기 때문에 따로 입력을 받아주었다.

좌표 (a, b)와 (c, d)로 이루어진 사각형의 둘레가 문제에서 얘기하는 울타리 공사의 비용이다.

둘레를 구하는 공식은 ((c - a) + (d - b)) * 2 이다. 그렇기 때문에 따로 함수로 만들어 사용했다.

새로운 건물을 지으면서 주어지는 좌표 (a, b)와 기존 좌표 (a, b)는 min 함수를 통해서

새로운 건물을 지으면서 주어지는 좌표 (c, d)와 기존 좌표 (c, d)는 max 함수를 통해서

값을 수정한 뒤에 울타리 공사의 비용을 개별로 출력했다.

 

 

 

 

 

 

 

<코드>

def calPerimeter(x1, y1, x2, y2):
    return ((x2 - x1) + (y2 - y1)) * 2


N = int(input())
a, b, c, d = map(int, input().split())
print(calPerimeter(a, b, c, d))

for _ in range(N - 1):
    newA, newB, newC, newD = map(int, input().split())
    a, b = min(a, newA), min(b, newB)
    c, d = max(c, newC), max(d, newD)
    print(calPerimeter(a, b, c, d))

 

 

 

 

 

 

 

반응형