알고리즘문제풀이

2381 최대거리

배우겠습니다 2024. 3. 24. 21:26

문제

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

풀이

  • 두 점 사이의 최대 맨하탄 거리를 구하는 문제이다.
  • 맨하탄 거리는 유클리드 거리에 비해 식이 간단하다(?)
  • 따라서 절대값에 따라 식을 정리할 수 있다.
  • 두 점 (x1,y1),(x2,y2)의 맨하탄 거리는 |x1-x2| + |y1-y2|이다.
    1. x1 - x2 + y1 - y2 = (x1+y1) - (x2+y2)
    2. x1 - x2 - y1 + y2 = (x1-y1) - (x2-y2)
    3. -x1 + x2 + y1 - y2 = -(x1-y1) + (x2-y2)
    4. -x1 + x2 - y1 + y2 = -(x1+y1) + (x2+y2)
  • 위 네개의 케이스의 최댓값을 구하기 위해 x,y의 합과 차가 필요하고, 그것을 기준으로 정렬하면 된다.
  • 결론적으로, x+y에 대해 정렬해서 첫번째와 마지막 점에 대해 값을 계산하고, x-y에 대해 정렬해서 첫번째와 마지막 점에 대해 값을 계산한다.

'알고리즘문제풀이' 카테고리의 다른 글

백준 31741 구간 덮기  (0) 2024.04.24
백준 20500 Ezreal 여눈부터 가네 ㅈㅈ  (0) 2024.04.03
31478 포니 양은 놀고 싶어  (2) 2024.03.22
백준 1419 등차수열의 합  (0) 2024.03.06
백준 31443 준영이  (0) 2024.03.06