Programmers_행렬 테두리 회전하기
12697 단어 programmersalgorithmcppalgorithm
테두리를 시계방향으로 회전하는 단순한 문제입니다.
이런 단순구현문제가 오히려 어렵더라구요 저는.
- 단순
구현
문제. 시계방향으로 돌려주고, 그 중 최솟값을 찾아서push
해주면 되는 문제. - 실수하면 어디서 실수했는지 찾기 싫은 문제
💻 전체 코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int arr[102][102];
vector<int> solution(int rows, int columns, vector<vector<int>> queries)
{
vector<int> answer;
int index = 1;
for (int i = 1; i <= rows; i++)
for (int j = 1; j <= columns; j++)
arr[i][j] = index++;
for (int i = 0; i < queries.size(); i++)
{
int x1 = queries[i][0];
int y1 = queries[i][1];
int x2 = queries[i][2];
int y2 = queries[i][3];
int num = arr[x1][y1];
int minNum = 987654321;
for (int j = x1; j < x2; j++)
{
arr[j][y1] = arr[j + 1][y1];
minNum = min(minNum, arr[j][y1]);
}
for (int j = y1; j < y2; j++)
{
arr[x2][j] = arr[x2][j + 1];
minNum = min(minNum, arr[x2][j]);
}
for (int j = x2; j > x1; j--)
{
arr[j][y2] = arr[j - 1][y2];
minNum = min(minNum, arr[j][y2]);
}
for (int j = y2; j > y1 + 1; j--)
{
arr[x1][j] = arr[x1][j - 1];
minNum = min(minNum, arr[x1][j]);
}
arr[x1][y1 + 1] = num;
minNum = min(minNum, arr[x1][y1 + 1]);
answer.push_back(minNum);
}
return answer;
}
Author And Source
이 문제에 관하여(Programmers_행렬 테두리 회전하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@luck2901/Programmers행렬-테두리-회전하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)