본문 바로가기

Coding Test

(163)
백준 21923 곡예 비행 (C++) https://www.acmicpc.net/problem/21923#include #include #include #include using namespace std;int udy[2] = {0, -1};int udx[2] = {1, 0};int ddy[2] = {0, -1};int ddx[2] = {-1, 0};int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; cin >> n >> m; vector> arr(n, vector(m)); vector> udp(n, vector(m, -987654321)); vector> ddp(n, vector(m, -98765432..
백준 2073 수도배관공 (C++) https://www.acmicpc.net/problem/2073#include #include #include #define MAX 987654321using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int d, p; cin >> d >> p; vector> pipe(p); vector dp(d + 1, 0); //dp[i]: 수도관 길이를 i까지 이었을 때의 최대 용량 for (auto &item: pipe) { cin >> item.first >> item.second; //길이, 용량 } ..
백준 2758 로또 (C++) https://www.acmicpc.net/problem/2758#include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; cin >> t; while (t--) { int n, m; long long ans = 0; cin >> n >> m; //dp[i][j]: 마지막으로 선택한 수가 j인 i개의 로또 번호 vector> dp(n + 1, vector(m + 1, 0)); for (int i = 1; i 1. 문제선영이는 매주 엄청난 돈을 로또에..
백준 2631 줄세우기 (C++) https://www.acmicpc.net/problem/2631#include #include #include #define MAX 987654321using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector arr(n); //dp[i]: i번째 사람 까지의 LIS vector dp(n, 0); for (auto &item: arr) { cin >> item; } for (int i = 0; i 1. 문제N명의 아이들이 임의의 순서로 줄을 서 있을 때, 번호 순서대로 배치하기 위해 옮겨..
백준 18427 함께 블록 쌓기 (C++) https://www.acmicpc.net/problem/18427#include #include #define DIV 10007using namespace std;vector block[51];//dp[i][j]: i명의 학생이 j 높이만큼 쌓는 경우의 수int dp[51][1001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m, h; cin >> n >> m >> h; cin.ignore(1); for (int i = 1; i =0){ dp[i][j]+=dp[i-1][j-block[i][k]]; ..
백준 12904 A와 B (C++) https://www.acmicpc.net/problem/12904#include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string s, t; cin >> s; cin >> t; while (s.size() != t.size()) { if (t.back() == 'A') { t.pop_back(); } else { t.pop_back(); reverse(t.begin(), t.end()); } } if (s == t) ..
백준 1790 수 이어 쓰기 2 (C++) https://www.acmicpc.net/problem/1790#include #include using namespace std;int calLen(int n){ int len = 0; for (int start = 1, i = 1; start n) { end = n; } len += (end - start + 1) * i; } return len;}int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, k; cin >> n >> k; if (calLen(n) 1. 문제n, k가 주어진다. 1부터 n까지 쭉 나열하여..
백준 6198 옥상 정원 꾸미기 (C++) https://www.acmicpc.net/problem/6198#include #include #include using namespace std;vector arr;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; long long ans = 0; cin >> n; arr.resize(n); for (int i = 0; i > arr[i]; } stack st; for (int i = 0; i 1. 문제n(1(1 ≤ h ≤ 1,000,000,000) 가 주어진다. 각 건물의 관리인은 건물의 옥상으로부터 우측에 있는 건물의 옥상을 확인하는 데, 본인이 ..