티스토리 뷰
문제
2381번: 최대 거리
첫째 줄에 N이 주어진다. 다음 N개의 줄에는 각 점의 x, y좌표가 주어진다. 각 좌표의 범위는 -1,000,000이상 1,000,000이하이다.
www.acmicpc.net
풀이
절댓값을 풀어서 나오는 네 가지 경우는 아래의 꼴입니다.
1. $±((a + b) - (c + d))$
2. $±((a - b) - (c - d))$
각 식을 살펴보면 결국 두 점간의 거리를 구하는 게 x, y좌표 대, 소관계와 관계없이 좌표 간의 합(차)의 차이를 구하는 것과 같고, 이에 최대 거리를 구하는 것은 각 좌표 간 합(차)의 최대 값에서 최소 값을 빼는 것과 같습니다.
코드
#include <bits/stdc++.h>
using namespace std;
int n, a, b;
vector<int> p, m;
int main() {
cin.tie(NULL); cout.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a >> b;
p.push_back(a + b);
m.push_back(a - b);
}
sort(p.begin(), p.end()), sort(m.begin(), m.end());
cout << max(p[n - 1] - p[0], m[n - 1] - m[0]);
}
'Algorithm > BOJ' 카테고리의 다른 글
[백준 12107] 약수 지우기 게임 1 (0) | 2020.10.05 |
---|---|
[백준 15927] 회문은 회문아니야!! (0) | 2020.10.05 |
[백준 5980] Corn Maze (0) | 2020.09.19 |
[백준 1981] 배열에서 이동 (0) | 2020.09.19 |
[백준 3197] 백조의 호수 (0) | 2020.09.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오 2021
- 표 편집
- BFS
- 카카오 2차코딩테스트
- 이분탐색
- 동적계획법
- 프로그래머스 월간코드챌린지
- 2022 카카오블라인드
- 누적합
- 2021 카카오 블라인드
- 시뮬레이션
- 카카오 2020 인턴십
- 2022 카카오 블라인드 코딩테스트
- 트리
- 백준
- Kakaoblind
- 위클리 챌린지
- 카카오 인턴십
- 카카오 표 편집
- 2022 KAKAO BLIND RECRUITMENT
- 구현
- 2021 KAKAO BLIND
- 투포인터
- 2020 KAKAO BLIND RECRUITMENT
- 파싱
- 게임이론
- DP
- 유니온파인드
- 프로그래머스
- 프로그래머스 위클리 9주차
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함