[C++] 프로그래머스 게임 맵 최단거리
·
Algorithm/Programmers
#include #include using namespace std; int solution(vector maps) { int answer = 0; int n = maps.size(); int m = maps[0].size(); bool visited[100][100] = { false }; vector direction = { {1, 0}, {0, 1}, {-1, 0}, {0, -1} }; queue node; node.push({ 0, 0 }); visited[0][0] = true; while (!node.empty()) { int value = maps[node.front().first][node.front().second]; for (int i = 0; i < direction.size(); i..
[C++] 프로그래머스 행렬 테두리 회전하기
·
Algorithm/Programmers
#include #include using namespace std; vector answer; int maxNum; void turn_border(const vector& queries, vector &table); vector solution(int rows, int columns, vector queries) { vector table; //[y][x] maxNum = rows * columns + 1; //make_table for (int y = 0; y < rows; y++) { vector columns_table_temp; for (int x = 0; x < columns; x++) columns_table_temp.push_back(y * columns + x + 1); table.pus..
[C++] 프로그래머스 N-Queen 재귀
·
Algorithm/Programmers
#include #include using namespace std; int answer = 0; void BackTracking(int y, int n, vector visited); int solution(int n) { vector visited(3); //0 x, 1 left, 2 right BackTracking(0, n, visited); return answer; } void BackTracking(int y, int n, vector visited) { if (y == n) { answer++; return; } for (int x = 0; x < n; x++) { bool next = false; //x와 대각선좌표에 해당되는지 판단 for (int j = 0; j < 3; j++) { ..
[C++] 프로그래머스 [1차]추석트래픽
·
Algorithm/Programmers
#include #include using namespace std; //초당 최대 처리량은 1초간의 최대개수 int solution(vector lines) { int answer = 0; vector hms; //시작시간 끝시간 //날짜를 초로 바꿔준다. for(int i = 0; i < lines.size(); i++) { double endTime = stod(lines[i].substr(11, 2)) * 3600; //h endTime += stod(lines[i].substr(14, 2)) * 60; //m endTime += stod(lines[i].substr(17, 2)); //s endTime += stod(lines[i].substr(20, 3)) * 0.001; //ss double..
[C++] 프로그래머스 N으로표현 DP
·
Algorithm/Programmers
#include #include #include using namespace std; int make_NN(int N, int counts); int solution(int N, int number) { if(N == number) return 1; vector dp(9); dp[1].insert(N); for(int i = 2; i 0) dp[i].insert(a - b); if(a / b > 0) dp[i].insert(a / b); } } }//for(int y = 0; y < i; y++) } dp[i].insert(make_NN(N, i)); if (dp[i].count(number)) return i; } return -1; } int make_NN(int N, int counts) { int..
[C++] 백준 1197 최소 스패닝 트리 / 최소신장트리
·
Algorithm/Baekjoon
#include #include #include using namespace std; int main() { int V = 0;//정점의 개수 int E = 0;//간선의 개수 int result = 0;//총 가중치 cin >> V; cin >> E; vector lists;//간선들 저장 vector visited(V + 1, false);//방문했는지 1~V priority_queue pq;//가중치, 다음노드 //입력 for (int i = 0; i > temp[j]; lists.push_back(temp); //1~V까지므로 1부터 시작점을 정함 if (temp[0] == 1) { vis..