[C++] 리트코드 Count and Say
·
Algorithm/HackerRank, LeetCode
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++] 프로그래머스 숫자의 표현
·
Algorithm/Programmers
#include #include using namespace std; int solution(int n) { int answer = 0; for(int i = 1; i
[C++] 프로그래머스 [PCCP 기출문제] 2번 / 석유 시추
·
Algorithm/Programmers
#include #include #include #include using namespace std; bool visited[500][500]; void dfs(int x, int y, int &count, set& targetNum, const vector& land) { if (visited[x][y]) { return; } visited[x][y] = true; count++; targetNum.insert(y); if (x + 1 < land.size()) { if (land[x + 1][y] == 1) { dfs(x + 1, y, count, targetNum, land); } } if (y + 1 < land[x].size()) { if (land[x][y + 1] == 1) { dfs(x, ..
[C++] 리트코드 221. Maximal Square
·
Algorithm/HackerRank, LeetCode
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
·
Algorithm/HackerRank, LeetCode
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++] 프로그래머스 올바른괄호
·
Algorithm/Programmers
#include #include using namespace std; bool solution(string s) { stack left; for(int i = 0; i < s.size(); i++) { if(s[i] == '(') { left.push(s[i]); } else { if(left.empty()) { return false; } else { left.pop(); } } } if(!left.empty()) { return false; } return true; } 풀이 1. ( 가 나오면 스택에 저장해준다. 큐여도 상관은 없을듯하다. 2. ) 가 나오면 스택에서 ( 를 하나 없애준다. 다만 스택이 비었는데 ) 가 나오면 괄호가 올바르지 않으므로 바로 불가능 판정이다. 느낀점 lv2가 맞나 싶다..