Algorithm/HackerRank, LeetCode

    [C++] 리트코드 Count and Say

    class Solution { public: string countAndSay(int n) { if (n == 1) { return "1"; } string result = countAndSay(n - 1); //left Count right Num string currResult; char currNum = result[0]; int currCount = 0; for (int j = 0; j < result.length(); j++) { if (currNum == result[j]) { currCount++; } if (currNum != result[j]) { currResult += to_string(currCount) + currNum; currCount = 1; currNum = result[j..

    [C++] 리트코드 221. Maximal Square

    class Solution { public: int maximalSquare(vector& matrix) { //최대 사각형의 너비를 구하라 int result = 0; int dp[300][300]{0}; for(int m = 0; m < matrix.size(); m++) { if(matrix[m][0] == '1') { result = 1; dp[m][0] = 1; } } for(int n = 0; n < matrix[0].size(); n++) { if(matrix[0][n] == '1') { result = 1; dp[0][n] = 1; } } for(int m = 1; m < matrix.size(); m++) { for(int n = 1; n < matrix[m].size(); n++) { ..

    [C++] 리트코드 279. Perfect Squares

    class Solution { public: int numSquares(int n) { vector dp(n+1, n+1); vector dpNum; int sum = 1; dp[sum] = 1; dpNum.push_back(sum); for(int i = 3; i < n+1; i+=2) { sum += i; if(sum

    [C++] 해커랭크 Cut the Tree

    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()) { ..

반응형