목록코딩테스트 (73)
bdfgdfg
#include #include using namespace std; int memo[50][50]; int Combination(int n, int k) { // 0개를 선택하거나 5개의 공에서 5개를 선택하는 경우의 수는 1. if (k == 0 || n == k) return 1; if (memo[n][k] != -1) return memo[n][k]; // 한번도 구한적이 없다면 계산하고 저장. return memo[n][k] = Combination(n - 1, k) + Combination(n - 1, k - 1); } int main(void) { ::memset(memo, -1, sizeof(memo)); int count,west,east; cin >> count; for (int i =..
5543번 #include #include #include using namespace std; int main() { vector burgerPrice; vector drink; burgerPrice.resize(3); drink.resize(2); for (int i = 0; i > burgerPrice[i]; } for (int i = 0; i > drink[i]; } cout hour1 >> minute1 >> second1 >> hour2 >> minute2 >> second2; if (second2 - second1 >= 0) resSecond = second2 - second1; else { --minute2; if (minute2..
#include #include using namespace std; int solution(string s) { int len = s.size(); if (len % 2 == 1) return 0; else if (len 0) return 0; return 1; } 위 방식은 처음부터 순회하면서 현재문자와 다음문자가 같다면 지운다음 다시 처음부터 반복하는 코드. 정답은 맞지만 효율성에서 실패가 뜬다. -> O(N^2)에 가까운 코드 조금 고민을 해보고 다른 사람의 풀이를 보았음. 스택을 이용하여 하나씩 담아보면서 다음 문자열에 들어올 문자가 스택의 top과 같다면 pop하는 형식으로 해결. #include #include #include using namespace std; int solution(st..
#include #include #include using namespace std; int solution(string skill, vector skill_trees) { int answer = 0; int skillLen = skill.size(); int userSkillLen = skill_trees.size(); int saveArr[26] = {0,}; vector userSkill; bool flag; userSkill.reserve(skillLen); for(int saveSkill = 0; saveSkill < skillLen; ++saveSkill) saveArr[skill[saveSkill] - 'A'] = 1; for(int find = 0; find < userSkillLen; +..