728x90
반응형

수학 9

[C/C++] 백준 - 2740번 : 행렬 곱셈

https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 문제 N*M크기의 행렬 A와 M*K크기의 행렬 B가 주어졌을 때, 두 행렬을 곱하는 프로그램을 작성하시오. 입력 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개가 차례대로 주어진다. N과 M, 그리고 K는 100보다 ..

BOJ/수학 2023.02.05

[C/C++] 백준 - 1059번 : 좋은 구간

https://www.acmicpc.net/problem/1059 1059번: 좋은 구간 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12] www.acmicpc.net 문제 정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다. A와 B는 양의 정수이고, A < B를 만족한다. A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다. 집합 S와 n이 주어졌을 때, n을 포함하는 좋은 구간의 개수를 구해보자. 입력 첫째 줄에 집합 S의 크기 L이 주어진다. 둘째 줄에는 집합에 포함된 정수가 주어진다. 셋째 줄에는 n이 주어진다. 출력 첫째 줄에 n을 포함하는 좋은 구간의 개수를 출력한다. 제한 1 ≤ L ≤ 50 집합 S에..

BOJ/수학 2022.07.02

[C/C++] 백준 - 10986번 : 나머지 합

https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 문제 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 106, 2 ≤ M ≤ 1..

BOJ/수학 2022.06.25

[C/C++] 백준 - 1735번 : 분수 합

문제 분수 A/B는 분자가 A, 분모가 B인 분수를 의미한다. A와 B는 모두 자연수라고 하자. 두 분수의 합 또한 분수로 표현할 수 있다. 두 분수가 주어졌을 때, 그 합을 기약분수의 형태로 구하는 프로그램을 작성하시오. 기약분수란 더 이상 약분되지 않는 분수를 의미한다. 입력 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. 출력 첫째 줄에 구하고자 하는 기약분수의 분자와 분모를 뜻하는 두 개의 자연수를 빈 칸을 사이에 두고 순서대로 출력한다. Step 1. 두 분수가 주어지면 그 분수의 합을 표현한다. Step 2. 합으로 표현된 하나의 분수를 기약분수 형태로 바꿔준다. 기약분수 형태로 바꾸는 것이 이 문제..

BOJ/수학 2022.06.22

[C/C++] 백준 - 2312번 : 수 복원하기

→https://www.acmicpc.net/problem/2312 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 문제 양의 정수 N이 주어졌을 때, 이 수를 소인수분해 한 결과를 출력하는 프로그램을 작성하시오. 간단한 소인수 분해 문제이다. ▶ Step #1 소인수분해를 해야하기에 postInit() 메서드로 N범위 이내의 소수를 모두 구해준다. 빠르게 소수를 구하기 위해 에라토스테네스의 체 알고리즘을 사용해 구해준다. ▶ Step #2 문제에서 요구하는 것은 주어진 수를 소인수분해를 하기 위해 사용했던 수와 그 수의 개수이다. 그러므로 개수를 세어주는 배열 하나와 어떠한 ..

BOJ/수학 2022.05.26

[C/C++] 백준 - 1789번 : 수들의 합

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 간단한 수학 문제이다. 단, 주의해야할 점이 S보다 작은 수가 아닌 S와 같은 값이 나와도 된다. 딱 보고 떠올라야하는 공식은 1부터 N까지 모두 더한 값이 -> N * (N + 1) / 2 이걸 먼저 떠올려야한다. 그래서 주어진 S에 2를 곱한 후 그것의 제곱근을 먼저 파악한다. 그리고 그 제곱근을 위 공식에 대입해 계산한 값이 S보다 크면 이보다 1 작은 값이 정답이 될 수 밖에 없다. #include #inclu..

BOJ/이분 탐색 2022.01.14

[C/C++] 백준 - 5347번 : LCM

https://www.acmicpc.net/problem/5347 5347번: LCM 첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다. www.acmicpc.net 최소공배수를 구하는 문제이다. 유클리드 호제법을 통해 최대공약수를 먼저 구한 후 두 수의 곱을 최대 공약수로 나누어주면 된다. 단, 최소 공배수의 크기가 32비트 정수형을 넘을 수 있다는 점을 주의한다. #include #include #include #include #include #include #include #include #include #include #include #define CUNLINK ios::sync..

BOJ/수학 2021.09.20

[C/C++/Python] 백준 - 2004번 : 조합 0의 개수

https://www.acmicpc.net/problem/2004 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 수학 문제 너무 어려웡 조합을 통해 도출해낸 값의 끝자리 0의 개수를 출력하는 문제이다. 그리고 0의 개수는 어떻게 구할까 위 문제 예제처럼 끝자리 0의 개수가 2개라면 그 식은 x * 10^2라고 표현할 수 있다. 위 식을 소인수분해하면 2와 5의 개수가 각각 2개씩 있다는 것을 알 수 있다. 이렇듯 어떤 문제에서 끝자리 0의 개수를 구하라는 것은 소인수분해 했을 때 2와 5의 공통개수를 구하라는 문제와 같다. 이 문제 또한 2와 5의 개수를 구하면 되는..

BOJ/수학 2021.09.02

[C/C++] 백준 - 2981번 : 검문

https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 문제 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간을 때우기 위해서 수학 게임을 하기로 했다. 먼저 근처에 보이는 숫자 N개를 종이에 적는다. 그 다음, 종이에 적은 수를 M으로 나누었을 때, 나머지가 모두 같게 되는 M을 모두 찾으려고 한다. M은 1보다 커야 한다. N개의 ..

BOJ/수학 2021.07.15
728x90
반응형