Programming/백준

[골드 2] 백준 2381 - 최대 거리 (파이썬)

pental 2025. 4. 25. 17:58

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

풀이

N = int(input())
P = [list(map(int, input().split())) for _ in range(N)]

N개의 점을 입력받고 리스트 P에 저장한다.

max_plus = -1e9
min_plus = 1e9
for x, y in P :
    max_plus = max(max_plus, y + x)
    min_plus = min(min_plus, y + x)

(x + y)의 최대값 최소값을 계산한다.

max_minus = -1e9
min_minus = 1e9
for x, y in P :
    max_minus = max(max_minus, y - x)
    min_minus = min(min_minus, y - x)

(y - x)의 최대값 최소값을 계산한다.

print(max(max_plus - min_plus, max_minus - min_minus))

두 거리 중 더 큰 값을 출력한다.

코드

# 백준 2381 - 최대 거리
# 분류 : 수학

N = int(input())
P = [list(map(int, input().split())) for _ in range(N)]

max_plus = -1e9
min_plus = 1e9

for x, y in P :
    max_plus = max(max_plus, y + x)
    min_plus = min(min_plus, y + x)

max_minus = -1e9
min_minus = 1e9

for x, y in P :
    max_minus = max(max_minus, y - x)
    min_minus = min(min_minus, y - x)

print(max(max_plus - min_plus, max_minus - min_minus))