반응형
https://programmers.co.kr/learn/courses/30/lessons/77485
글쓴이의 답
개인적인 풀이 임으로
이것보다 더 좋은 알고리즘은 많음...
이렇게도 풀이하는구나.. 공유하기 위해 올림...
#include <string>
#include <vector>
#include <set>
#include <iostream>
#include <iomanip>
using namespace std;
vector<int> solution(int rows, int columns, vector<vector<int>> queries) {
vector<int> answer;
int map[rows][columns];
int count =1;
for(int i=0; i< rows; i++){
for(int k=0; k< columns; k++){
map[i][k] = count;
count++;
}
}
for(vector<int> it : queries){
int startWidth = it[0]-1;
int startHeight = it[1]-1;
int endWidth = it[2]-1;
int endHeight = it[3]-1;
set<int> result;
int temp = map[startWidth][startHeight];
for(int i=startHeight+1; i <= endHeight; i++){
int num = map[startWidth][i];
map[startWidth][i] = temp;
result.insert(temp);
temp = num;
}
for(int i=startWidth+1; i <= endWidth; i++){
int num = map[i][endHeight];
map[i][endHeight] = temp;
result.insert(temp);
temp = num;
}
for(int i=endHeight-1; i >= startHeight; i--){
int num = map[endWidth][i];
map[endWidth][i] = temp;
result.insert(temp);
temp = num;
}
for(int i=endWidth-1; i >= startWidth; i--){
int num = map[i][startHeight];
map[i][startHeight] = temp;
result.insert(temp);
temp = num;
}
answer.push_back(*result.begin());
}
return answer;
}
꾸준히 하다보면 실력이 늘겠지..
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스][C++] 괄호 변환 (0) | 2022.03.21 |
---|---|
[프로그래머스][C++] 메뉴 리뉴얼 (0) | 2022.03.21 |
[프로그래머스][C++] 짝지어 제거하기 (0) | 2022.03.21 |
[프로그래머스][C++] 타겟 넘버 (0) | 2022.03.21 |
[프로그래머스][C++] 더 맵게 (0) | 2022.03.21 |