본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 1779. Find Nearest Point That Has the Same X or Y Coordinate

반응형

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;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.