반응형
https://leetcode.com/problems/find-nearest-point-that-has-the-same-x-or-y-coordinate/
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
정답 index ans와 최소 manhattan 거리에 대한 변수를 선언해 각각 -1, 최댓값(약 10억)으로 저장해줍니다.
📔 풀이과정
1. points의 원소를 순회하며 x나 y좌표가 같은 것들 중에 manhattan거리의 최솟값을 저장해줍니다.
2. 다시 points를 순회하며 x나 y좌표가 같은 것들 중 최솟값을 가진 index를 ans에 저장하고 break합니다.
📔 정답 출력 | 반환
가장 앞 index를 가진 ans를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
int nearestValidPoint(int x, int y, vector<vector<int>>& points) {
int ans = -1;
int smallestManhattanDist = 0x3f3f3f3f;
for(int i = 0; i < points.size(); i++) {
vector <int> coord = points[i];
if (coord[0] != x && coord[1] != y) continue;
int dist = abs(coord[0] - x) + abs(coord[1] - y);
smallestManhattanDist = min(smallestManhattanDist, dist);
}
for(int i = 0; i < points.size(); i++) {
vector <int> coord = points[i];
if (coord[0] != x && coord[1] != y) continue;
int dist = abs(coord[0] - x) + abs(coord[1] - y);
if(smallestManhattanDist == dist) {
ans = i;
break;
}
}
return ans;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.