본문 바로가기

728x90
SMALL

BAEKJOON/수학

(108)
백준 13458번 [시험 감독](C++) -yes6686- 티스토리 백준 문제 풀이: 13458 (시험 감독)문제 링크: https://www.acmicpc.net/problem/13458문제 설명:각 시험장에는 총감독관과 부감독관이 필요합니다. - **총감독관**은 반드시 1명만 있어야 하며, 시험장에 있는 모든 학생을 감독합니다. - **부감독관**은 여러 명 있을 수 있지만, **한 명당 최대 c명**의 학생만 감독할 수 있습니다. 각 시험장의 학생 수가 주어졌을 때, 모든 학생을 감독하기 위해 필요한 감독관의 **최소 인원**을 구하는 문제입니다.문제 해결 코드#include using namespace std;int arr[1000001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); int..
백준 2477번 [참외밭](C++) -yes6686- 티스토리 백준 문제 풀이: 2477 [참외밭]문제 링크: https://www.acmicpc.net/problem/2477문제 설명:참외밭은 다각형 형태로 이루어져 있으며, 다각형의 꼭짓점은 항상 시계방향으로 나열됩니다. 주어진 입력으로 참외밭의 면적을 계산한 후, 1m²당 자라는 참외의 개수 k를 곱하여 총 참외 개수를 출력합니다.가장 긴 가로와 세로의 길이를 이용해 전체 사각형의 넓이를 계산하고, 겹쳐진 작은 사각형의 넓이를 빼면 참외밭의 실제 면적을 구할 수 있습니다.문제 해결 코드#include using namespace std;int arr[13]; // 길이를 순환하기 위해 배열 크기를 2배로 설정int main() { int k; // 1m²당 자라는 참외의 개수 cin >> k; ..
백준 11401번 [이항 계수 3](C++) -yes6686- 티스토리 백준 문제 풀이: 11401 [이항 계수 3]문제 링크: https://www.acmicpc.net/problem/11401문제 설명:정수 n과 r이 주어질 때, 이항 계수 C(n, r)을 109+7로 나눈 나머지를 구하는 문제입니다. 이항 계수는 다음과 같이 정의됩니다:C(n, r) = n! / (r!(n-r)!)모듈러 연산과 페르마의 소정리를 사용하여 효율적으로 계산해야 합니다.문제 해결 코드#include #define MOD 1000000007using namespace std;// 거듭제곱을 계산하는 함수 (모듈러 역원 구하기)long long mod_pow(long long base, long long exp, long long mod) { long long result = 1; w..
백준 1557번 [제곱 ㄴㄴ](C++)-yes6686- 티스토리 백준 문제 풀이: 1557 [제곱 ㄴㄴ]문제 링크: https://www.acmicpc.net/problem/1557문제 설명:자연수 중에서 어떤 소수의 제곱으로 나누어 떨어지지 않는 수들을 제곱 ㄴㄴ 수라고 합니다. n번째 제곱 ㄴㄴ 수를 찾는 문제입니다.문제 해결 코드#include using namespace std;int arr[150001]; // 소수를 판별하기 위한 배열long long parr[150001]; // 소수의 제곱 저장 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 에라토스테네스의 체를 사용하여 소수 판별 for (int i = 2; i 코드 설명핵심 ..
백준 14941번 [호기심](C++)-yes6686- 티스토리 백준 문제 풀이: 14941 [호기심]문제 링크: https://www.acmicpc.net/problem/14941문제 설명:주어진 범위 [a, b]에서 소수의 합과 소수의 특성에 따라 계산된 값을 출력하는 문제입니다. 소수의 특성은 번갈아 가며 첫 번째 소수는 3배를 더하고, 두 번째 소수는 빼는 방식으로 구성됩니다.문제 해결 코드#include using namespace std;int arr[100001]; // 소수 여부 체크 배열int sum1[100001]; // 패턴 1 누적 합int sum2[100001]; // 패턴 2 누적 합int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> ..
백준 9213번 [꽤 좋은 수](C++)-yes6686- 티스토리 백준 문제 풀이: 9213 [꽤 좋은 수]문제 링크: https://www.acmicpc.net/problem/9213문제 설명:자연수 (n)에 대해 약수의 합 (sigma(n))를 계산했을 때, (|sigma(n) - n|)이 주어진 badness 이하인 수를 "꽤 좋은 수"로 정의합니다. 주어진 구간 [s, e]에서 꽤 좋은 수의 개수를 구하는 문제입니다.문제 해결 코드#include using namespace std;int arr[1000001]; // 약수의 합 저장 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); // 약수의 합 계산 for (int i = 1; i > s >> e >> badness; ..
백준 1153번 [네 개의 소수](C++)-yes6686- 티스토리 백준 문제 풀이: 1153 [네 개의 소수]문제 링크: https://www.acmicpc.net/problem/1153문제 설명:자연수 n이 주어졌을 때, n을 네 개의 소수의 합으로 표현할 수 있는지 판단하고, 가능하다면 네 개의 소수를 출력하는 문제입니다. 여러 정답이 있을 경우 그중 하나만 출력하며, 불가능한 경우 -1을 출력합니다.문제 해결 코드#include using namespace std;int arr[1000001];int p[1000001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 에라토스테네스의 체를 이용하여 소수 판별 for (int i = 1; i 코드..
백준 1016번 [제곱 ㄴㄴ 수](C++)-yes6686- 티스토리 백준 문제 풀이: 1016 [제곱 ㄴㄴ 수]문제 링크: https://www.acmicpc.net/problem/1016문제 설명:두 정수 n과 m이 주어질 때, n 이상 m 이하의 정수 중 제곱 ㄴㄴ 수(어떤 소수의 제곱으로 나눠지지 않는 수)의 개수를 구하는 문제입니다.문제 해결 코드#include using namespace std;long long int arr[1000001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); long long int n, m; cin >> n >> m; for (long long int i = 2; i * i 코드 설명핵심 알고리즘: 소수의 제곱들을 이용해 범위 내 숫자..

728x90
LIST