#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<string> v) {
int xMin = 50, yMin = 50, xMax = -1, yMax = -1;
for (int i = 0; i < v.size(); i++)
for (int j = 0; j < v[0].size(); j++)
if (v[i][j] == '#') {
xMin = min(xMin, i);
yMin = min(yMin, j);
xMax = max(xMax, i);
yMax = max(yMax, j);
}
return {xMin, yMin, xMax + 1, yMax + 1};
}
간단히 좌표상의 조건으로 답을 구할 수 있다.
x축의 가장 작은 값, y축의 가장 작은 값 그리고 x축의 가장 큰 값, y축의 가장 큰 값을 구해야한다.
가장 작은 윗면 좌표 -> 0,1
가장 작은 왼쪽면 좌표 -> 1,0
가장 큰 오른쪽면 좌표 -> 2,8
가장 큰 아랫면 좌표 -> 6,4
.##...##.
#..#.#..#
#...#...#
.#.....#.
..#...#..
...#.#...
....#....
답 -> 0 0 / 7 9
가장 작은 윗면 좌표의 x축 , 가장 작은 왼쪽면 좌표 y축이 시작 위치이고,
가장 큰 아랫면 좌표의 x축, 가장 큰 오른쪽면 좌표의 y축이 끝나는 위치다.
단순히 x,y축의 min max값 4개만 2중 for문을 돌면서 구하면 되는 문제다.
끝쪽 드래그 좌표는 각각의 변수에 1씩 더한 값을 vector에 할당하여 return해준다.