Programming
-
4153번 : 직각삼각형Programming/백준 2021. 5. 5. 09:38
#include #include bool Predicate(const int x, const int y, const int r) { int pred1 = std::max(x, y); int max = std::max(pred1, r); if (max == pred1) { if (pred1 == x) { return (x * x == ((y * y) + (r * r))); } else { return (y * y == ((x * x) + (r * r))); } } else { return (r * r == ((x * x) + (y * y))); } } int main(void) { std::cin.tie(NULL); std::cout.tie(NULL); std::cin.sync_with_stdio(fals..
-
3009 : 네 번째 점Programming/백준 2021. 5. 5. 09:20
쉬운 문제를 너무 어렵게 생각했던 것 같다. #include struct Point { int x; int y; }; int main(void) { std::cout.tie(NULL); std::cin.tie(NULL); std::cin.sync_with_stdio(false); Point p1, p2, p3, p4; std::cin >> p1.x >> p1.y; std::cin >> p2.x >> p2.y; std::cin >> p3.x >> p3.y; if (p1.x == p2.x) p4.x = p3.x; else if (p1.x == p3.x) p4.x = p2.x; else // (p2.x == p3.x) p4.x = p1.x; if (p1.y == p2.y) p4.y = p3.y; else if..
-
1085번 : 직사각형에서 탈출Programming/백준 2021. 5. 3. 22:10
#include #include int main(void) { std::cout.tie(NULL); std::cin.tie(NULL); std::cin.sync_with_stdio(false); int x, y, w, h; std::cin >> x >> y >> w >> h; int x1 = std::abs(x - w); int x2 = x; int xMin = std::min(x1, x2); int y1 = abs(y - h); int y2 = y; int yMin = std::min(y1, y2); std::cout
-
9020 : 골드바흐의 추측Programming/백준 2021. 5. 2. 15:42
사전에 미리 아리스토텔레스의 체를 활용하여 소수들을 담아두고 있는 테이블을 만들었다. a + b = c일때 c랑 a를 알고 있으면 b를 알 수 있기 때문에(b = c - a) 이 방식으로 O(N^2)의 복잡도를 O(N)으로 줄였다. #include #include void PrimePartition( int& a, int& b , std::vector& primeTable, int num) { a = 0; b = 0; for (int i = 0; i < num; i++) { if (!primeTable[i]) continue; int j = num - i; if (!primeTable[j]) continue; if (a != 0 && b != 0 && abs(a - b) < abs(i - j)) cont..
-
4948번 : 베르트랑 공준Programming/백준 2021. 5. 1. 13:42
N보다 크고 2N보다 작거나 같은 소수는는 적어도 하나 존재한다. #include #include int GetPrimeCount(const std::vector& primeIndex, const int N, const int M) { int count = 0; for (size_t i = N + 1; i > N; if (N == 0) break; if (N > maximum) maximum = N; input.emplace_back(N); } std::vector index((maximum * 2) + 1, true); index[0] = false; index[1] = false; for (int i = 2; i
-
1929번 : 소수 구하기Programming/백준 2021. 5. 1. 12:51
에라토스테네스의 체를 이용하여 소수를 구했습니다. #include #include int main(void) { std::cin.tie(NULL); std::cout.tie(NULL); std::cout.sync_with_stdio(false); int M = 0, N = 0; std::cin >> M >> N; std::vector index(N + 1, true); index[0] = false; index[1] = false; for (int i = 2; i