[C++] 프로그래머스 가장 많이 받은 선물
·
Algorithm/Programmers
#include #include #include #include using namespace std; int solution(vector friends, vector gifts) { int answer = 0; map giftPoint; map presentCount; map giftLog; for (int i = 0; i < friends.size(); ++i) { giftPoint.insert({ friends[i], 0 }); } for (int i = 0; i < friends.size(); ++i) { //선물 내역 초기화와 자기 자신은 제거 giftLog[friends[i]] = giftPoint; giftLog[friends[i]].erase(friends[i]); } for (int i =..
[C++] 프로그래머스 미로 탈출 명령어
·
Algorithm/Programmers
#include #include using namespace std; string answer = ""; void dfs(int n, int m, int x, int y, int r, int c, int k, int currCount, string currPath) { int manhattanRange = abs(x - r) + abs(y - c); if (manhattanRange + currCount > k) { return; } if (x == r && y == c && k == currCount) { answer = currPath; return; } if(answer != "") { return; } if (x + 1 = 1) { dfs(n, m, x, y - 1, r, c, k, currCou..
[C++] 프로그래머스 거리두기 확인하기
·
Algorithm/Programmers
#include #include using namespace std; bool SearchManhattanRange(int aX,int aY, int bX, int bY, const vector& place) { int manhattanRange = abs(aX - bX) + abs(aY - bY); if (manhattanRange > 2) { return false; } int minX = min(aX, bX); int minY = min(aY, bY); if (aY == bY) { if(place[aY][minX + 1] == 'X') { return false; } } if (aX == bX) { if (place[minY + 1][aX] == 'X') { return false; } } if (..
[C++] 해커랭크 Cut the Tree
·
Algorithm/HackerRank, LeetCode
int cutTheTree(const vector& data, const vector& edges) { vector nodes(data.size()); vector sumData = data; stack stackNodes; int result = 0; //save nodes for (int i = 0; i < edges.size(); ++i) { nodes[edges[i][0] - 1].push_back(edges[i][1] - 1); nodes[edges[i][1] - 1].push_back(edges[i][0] - 1); } //save stack (BFS) { vector visited(data.size(), false); queue q; q.push(0); while (!q.empty()) { ..
[C++] 프로그래머스 2016년
·
Algorithm/Programmers
#include #include using namespace std; string solution(int a, int b) { string answer = ""; int month[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 }; string week[7] = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" }; for(int i = 0; i < a - 1; i++) { b += month[i]; } answer = week[(b + 4) % 7]; return answer; } 풀이 1. 12월까지의 날짜와 각 요일을 저장한다. 요일은 일요일부터 저장한다. 7로 나눠질때 0으로 떨어지는 것을 이용. 2. 배열이 0부터 계산하여 ..
[C++] 프로그래머스 정수삼각형
·
Algorithm/Programmers
#include #include using namespace std; int solution(vector triangle) { int answer = 0; for (int i = 1; i < triangle.size(); i++) { int endNum = triangle[i].size() - 1; triangle[i][0] += triangle[i - 1][0]; triangle[i][endNum] += triangle[i - 1][endNum - 1]; answer = max(triangle[i][0], answer); answer = max(triangle[i][endNum], answer); for (int j = 1; j < endNum; j++) { int maxNum = max(triangl..