title: "가장 긴 증가하는 부분 수열(11053)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-31" 문제 링크 가장 긴 증가하는 부분 수열(11053) C++ #include #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; vector nums; nums.push_back(0); for(int i=0; i> a; nums.push_back(a); } vector dp(n+1, 0); // 부분 수열의 수 dp[1] = 1; // 첫 번째 for(int i=2; i0; j--){ if(current > nums[j..
title: "스티커(9465)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-29" 문제 링크 스티커(9465) C++ #include #include #include using namespace std; // 문제 풀이 void solution(){ int t; cin >> t; for(int i=0; i> n; // Init vector stickers; for(int j=0; j x; vec.push_back(x); } stickers.push_back(vec); } // DP if(n==1){ cout
title: "조합(2407)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-27" 문제 링크 조합(2407) C++ #include #include #include #include using namespace std; string add_num(string num1, string num2){ string result = ""; int sum = 0; while(!num1.empty() || !num2.empty() || sum>0){ if(!num1.empty()){ sum += num1.back() - '0'; num1.pop_back(); } if(!num2.empty()){ sum += num2.back() - ..
title: "N과 M (5)(15654)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-27" 문제 링크 N과 M (5)(15654) C++ #include #include #include #include using namespace std; void doPermutation(vector& origin, vector& selected, int select, vector& stack){ if(select == 0){ for(int e: stack){ cout [v]); } else { origin.forEach((v, i) => { const fixed = v; const filterArr = origin.filter((vv, ii)..
title: "N과 M (2)(15650)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-27" 문제 링크 N과 M (2)(15650) C++ #include #include #include using namespace std; void doCombination(vector& origin, vector& selected, int select, int start){ if(select == 0){ for(int i=0; i i + 1); const result = doCombi(origin, +m); console.log(result.map((v) => v.join(" ")).join("\n"));
title: "이중 우선순위 큐(7662)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-25" 문제 링크 이중 우선순위 큐(7662) C++ #include #include #include #include using namespace std; // 문제 풀이 void solution(){ int t; cin >> t; for(int i=0; i> k; multiset ms; for(int i=0; i> op >> num; if(op=='I'){ ms.insert(num); } else if(op=='D'){ if(ms.empty()) continue; if(num==1){ // 최댓값 삭제 ms.eras..
title: "AC(5430)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-24" 문제 링크 AC(5430) C++ #include #include #include #include #include using namespace std; void solution(){ int t; cin >> t; for(int i=0; i> p; // Init 개수 int size; cin >> size; // Init 배열 string arr; cin >> arr; arr = arr.substr(1, arr.length()-2); stringstream ss(arr); string res; while(getline(ss, res, ','..
title: "토마토(7576)" category: 백준[Class-3] tags: [C++, JavaScript, 백준] date: "2021-05-23" 문제 링크 토마토(7576) C++ #include #include #include #include using namespace std; void solution(){ int m, n; cin >> m >> n; // Init vector board; for(int i=0; i num; vec.push_back(num); } board.push_back(vec); } // Push 익은 토마토 queue q; for(int y=0; y