[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가 맞나 싶다..
[C++] 프로그래머스 최솟값 만들기
·
Algorithm/Programmers
#include #include using namespace std; int solution(vector A, vector B) { int answer = 0; sort(A.begin(), A.end()); sort(B.begin(), B.end(), greater()); for(int i = 0; i < A.size(); i++) { answer += A[i] * B[i]; } return answer; } 풀이 1. 낮은 순, 높은 순 정렬해서 곱을 더한다. 느낀점 sort함수가 정말 편리함을 느낀다. 직접 정렬을 만들어야 2레벨일듯하다. https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반..
[C++] 프로그래머스 JadenCase 문자열 만들기
·
Algorithm/Programmers
#include #include using namespace std; string solution(string s) { string answer = ""; bool firstString = true; for(int i = 0; i 47 && s[i] < 58) { answer += s[i]; if(firstString) { firstString = false; } } else if(s[i] == ' ') { answer += s[i]; firstString = true; } else { if(!firstString) { answer += tolower(s[i]); } else { answer += toupper(s[i]); firstString = fa..
[C++] 프로그래머스 최댓값과 최솟값
·
Algorithm/Programmers
#include #include #include #include using namespace std; string solution(string s) { string answer = ""; int minNum; int maxNum; stringstream ss(s); string num = ""; ss >> num; minNum = stoi(num); maxNum = stoi(num); while(ss >> num) { int i = stoi(num); if(minNum > i) { minNum = i; } if(maxNum < i) { maxNum = i; } } answer += to_string(minNum) + " "; answer += to_string(maxNum); return answer; ..
[C++] 프로그래머스 과제 진행하기
·
Algorithm/Programmers
#include #include #include #include using namespace std; //시간을 분으로 저장 struct goodPlan { string name; int time; int playTime; }; //시간순으로 정렬 bool sortPlans(goodPlan a, goodPlan b) { if (a.time < b.time) { return true; } return false; } vector solution(vector plans) { vector answer; vector resultPlan; //분으로 치환한 값을 넣어놓는다. for (int i = 0; i < plans.size(); ++i) { string time = ""; time += plans[i][1]..
[C++] 백준 13023 ABCDE
·
Algorithm/Baekjoon
#include #include using namespace std; bool visited[2000]{ false }; bool result = false; void dfs(int currNode, int count, const vector& friends) { if (count == 4) { result = true; return; } for (int i = 0; i < friends[currNode].size(); ++i) { int nextNode = friends[currNode][i]; if (visited[nextNode]) { continue; } visited[nextNode] = true; dfs(nextNode, count + 1, friends); visited[nextNode] =..