본문 바로가기

수학12

[백준/C,C++] 11051번: 이항 계수 2 www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net DP를 이용해 이항 계수를 푸는 문제입니다. 이항 계수 $\binom{N}{K}$ 는 $\frac{n!}{k!(n-k)!}$ 로 나타낼 수 있습니다. 하지만 주어지는 수의 범위가 $1 \le N \le 1,000, 0 \le K \le N$ 으로, 팩토리얼을 그대로 구현해서 쓴다면 값이 매우 커지게 됩니다. 값이 매우 커지기 때문에 모듈러 연산을 한 값을 출력해야 하는데, 모듈러 연산은 분수에 적용하기 힘들어 해당 값을 구할 수 없게 됩니다. 이항 계수를 기하학적 형태로 표현한 파.. 2021. 3. 26.
[백준/C,C++] 1629번: 곱셈 www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net A의 B제곱을 C로 나눈 나머지를 구하는 문제인데, 그 수가 매우 클 수 있어 분할 정복을 이용해서 풀어야 하는 간단한 문제입니다. 힌트를 먼저 간단히 드리자면.. $A^{B}$ 과 같은 수식이 있을 때, B가 짝수라면, $A^{B/2}\times A^{B/2}$ 으로 나타낼 수 있을 겁니다. 홀수라면, $A^{B/2}\times A^{B/2+1}$ 으로 나타낼 수 있겠죠. 문제와 달리 입력값이 작다고 예를 들어봅시다!! 만약 B가 10이라고 치면 A의 B제곱을 구할 때 일반.. 2021. 3. 25.
[백준/C,C++] 1541번: 잃어버린 괄호 www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 괄호를 쳐서 해당 식의 값을 최솟값으로 만들기 위해선 덧셈끼리 묵어 가장 큰 수를 만든 뒤 빼야 합니다. 가령 100+200-300+400과 같은 식이 있다면 (100+200)-(300+400)으로 식을 고쳐주면 최솟값이 나오죠. 그런데 100+200-300+400-500+600+700-800+900과 같은 식이 있다면 100+200-(300+400)-(500+600+700)-(800+900)으로 식을 고.. 2021. 3. 14.
[백준/C,C++] 9461번: 파도반 수열 www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net hackids.tistory.com/19 [백준/C,C++] 1904번: 01타일 www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이 hackids.tistory.com 1904번: 01타일 문제와 비슷하게 점화식만 찾는다면 쉽게 풀 수 있.. 2021. 3. 7.