백준

    [실1] 11660 - 구간 합 구하기 5

    #include #include using namespace std; #pragma region 입출력 속도향상 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion int main() { FAST_IO(); int n, m; cin >> n >> m; vector v(n + 1, vector(n + 1)); // 입력 for (int y = 1; y > v[y][x]; } // 구간합 구하기 vector d(n + 1, vector(n + 1)); for..

    [골5] 9084 - 동전

    #include using namespace std; #pragma region 입출력 속도향상 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion int main() { FAST_IO(); int t; cin >> t; while (t--) { int n; cin >> n; int coin[21] = { 0 }; for (int i = 1; i > coin[i]; int m; cin >> m; // n가지 동전 1 ≤ M ≤ 10000 int dp[10001] = { 0 }; dp[0] = 1; for (int i = 1; i

    [골5] 12865 - 평범한 배낭

    #include #include #include using namespace std; #pragma region 입출력 속도향상 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion vector w, v; vector dp; int main() { FAST_IO(); int n, k; cin >> n >> k; w.resize(n + 1); v.resize(n + 1); dp.resize(n + 1, vector(k + 1)); for (int i = 1; i > w[i] >> v[i]; for (int i = 1; i

    [실1] 1931 - 회의실 배정

    #include #include using namespace std; pairarr[100001]; int main() { int n,a,b,cnt=1; cin>>n; for (int i = 0; i > b >> a; arr[i] = {a, b}; } sort(arr, arr + n); int end=arr[0].first; for (int i = 1; i < n; i++) { if (end

    [실2] 1654 - 랜선 자르기

    #include #include #include using namespace std; #pragma region 입출력 속도향상 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion vector v; int main() { FAST_IO(); long k, n; cin >> k >> n; v.resize(k); for (int i = 0; i > v[i]; sort(v.begin(), v.end()); long l = 1, r = v[k - 1]; long res = 0; while (l = n) { res = mid; l = mid + ..

    [실2] 2805 - 나무 자르기

    #include #include #include using namespace std; #pragma region 입출력 속도향상 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion vector v; int main() { FAST_IO(); long n, m; cin >> n >> m; v.resize(n); for (int i = 0; i > v[i]; sort(v.begin(), v.end()); long l = 0, r = v[n - 1]; long res = 0; while (l mid) sum += v[i] - mid; } if..

    [골4] 2110 - 공유기 설치

    #include #include #include using namespace std; vector v; int main() { int n, c; cin >> n >> c; v.resize(n); for (int i = 0; i > v[i]; sort(v.begin(), v.end()); int l = 1, r = v[n - 1]; int res = 0; while (l

    [골3] 2252 - 줄 세우기

    #include #include #include #include #pragma region 빠른 입출력 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion using namespace std; vector degree; vector graph; queue q; int main() { FAST_IO(); int n, m; cin >> n >> m; graph.assign(100001, vector()); degree.assign(n + 1, 0); for (int i = 0; i > a >> b; graph[a].pu..

    [골5] 1717 - 집합의 표현

    #include #include #include #pragma region 빠른 입출력 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion using namespace std; int graph[1000001]; int GetParent(int x) { if (graph[x] == x) return x; else return graph[x] = GetParent(graph[x]); } void Union(int a, int b) { a = GetParent(a), b = GetParent(b); graph[a] = b; } void Find(int a, int b..

    [골5] 27172 - 수 나누기 게임

    #include #include #include #pragma region 빠른 입출력 #define FAST_IO() \ {\ ios::sync_with_stdio(false);\ cin.tie(NULL); \ cout.tie(NULL); \ }\ #pragma endregion using namespace std; #define MAX 1000001 int main() { FAST_IO(); int n; cin >> n; vector v(n); int scores[MAX]{ 0 }, cards[MAX]{ 0 }; for (int i = 0; i > v[i]; cards[v[i]] = 1; } // 에라토스테네스의 체 응용 for (int i = 0; i < n; i++)..