title: "정수 삼각형(1932)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-06-11" 문제 링크 정수 삼각형(1932) C++ #include #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; // input vector dp; for(int i=1; i sub[j]; } dp.push_back(sub); } for(int i=1; i
title: "곱셈(1629)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-06-10" 문제 링크 곱셈(1629) C++ #include #include #include using namespace std; long long pow(int a, int b, int c){ if(b > 1){ long long half = pow(a, b/2, c)%c; if(b%2==0) return half*half%c; // b가 짝수 else return half*half%c*a%c; // b가 홀수 } else return a; } // 문제 풀이 void solution(){ int a, b, c; cin >> a >> b >> c; cout
title: "RGB거리(1149)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-06-06" 문제 링크 RGB거리(1149) C++ #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; vector dp(n+1, vector(3, 0)); for(int i=1; i> red >> green >> blue; dp[i][0] = red + min(dp[i-1][1], dp[i-1][2]); dp[i][1] = green + min(dp[i-1][0], dp[i-1][2]); dp[i][2] = blue + min(dp[i-1][0],..
title: "트리의 부모 찾기(11725)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-31" 문제 링크 트리의 부모 찾기(11725) C++ #include #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; vector graph[n+1]; for(int i=0; i> v1 >> v2; // 연결 graph[v1].push_back(v2); graph[v2].push_back(v1); } // BFS vector parent(n+1, 0); queue q; q.push(1); parent[1] = 1; while(!q..
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)..