전체 글 3

[C++] 백준 9184 - 신나는 함수 실행

https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 1. 입력 -50 \(\le\) a, b, c \(\le\) 50인 정수 a, b, c 입력의 마지막은 -1, -1, -1으로 나타내며, a, b, c가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. 2. 출력 w(a, b, c) 3. 풀이 먼저 문제에서 제시하는 함수를 단순 재귀 함수로 구현해 보면 아래와 같다. int w(int a, int b, int c) { if (a 20) return..

BOJ 2021.11.03

[C++] 백준 1904 - 01타일

https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 1. 입력 \(1 \le N \le 1,000,000 \)인 자연수 \(N\) 2. 출력 00 타일과 1 타일로 만들 수 있는 길이가 N인 모든 2진 수열의 개수를 15746으로 나눈 나머지 3. 풀이 문제를 풀며 다음을 고려했다. 1. 길이가 N 이하인 이진 수열의 개수가 아닌 길이가 N인 수열의 개수를 요구하고 있다. 2. 0 타일은 존재하지 않으므로, N이 2만큼 증가할 때 적용되는 경우의 수는 ..

BOJ 2021.11.03

[C++] 백준 1629 - 곱셈

https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 1. 입력 2,147,483,647 이하의 자연수 A B C 2. 출력 A를 B번 곱한 수를 C로 나눈 나머지(\(A ^ B\) mod C) 3. 풀이 문제의 핵심은 \(A ^ B\)를 구하는 것이다. 다만 자료형의 크기 때문에 일정 수 이상이 되면 오버플로가 발생하므로, C로 나눈 나머지를 구하는 모듈러 연산이 추가로 요구된다. 단순한 반복문이나 재귀함수를 이용한 구현을 유도하는 문제는 당연히 아니다. 문제와 같은 거듭제곱 후 모듈러 연산은 대표적으로 RSA ..

BOJ 2021.11.02