The Way
백준 온라인 저지(BOJ) 1075번 문제https://www.acmicpc.net/problem/1075 1. 문제 요약두 수 N과 F가 주어진다.N의 앞 두자리는 그대로 두고, 뒷 두자리를 바꾸어 N이 F로 나누어 떨어지게 만들자. 답이 여러 개이면 N을 가장 작게 하자.(100 > F; N /= 100; N *= 100; while (N % F != 0) N++; N %= 100; if (N < 10) cout
백준 온라인 저지(BOJ) 1094번 문제https://www.acmicpc.net/problem/1094 1. 문제 요약64cm의 막대기를 가지고 Xcm의 막대기를 만들기.이 때 다음의 방법을 이용한다.1. 가지고 있는 막대의 길이를 모두 더해서 X보다 크면, 그 중 가장 작은 길이의 막대기를 절반으로 자른다.2. 자르고 그 중 하나를 버렸을 때 그 합이 X보다 크거나 같으면 하나를 버린다. 위 과정을 반복해, 남아있는 막대의 합이 X가 되도록 만든다.이 때 위 과정을 거친다면 몇 개의 막대를 풀로 붙여야 Xcm를 만들 수 있을까? 2. 알고리즘뭔가 표현은 복잡하지만, 분석해보면 간단함을 깨달을 수 있을 것이다. 64cm부터 시작해서, 가장 짧은 막대의 길이는 점차 반으로 줄어들어 32, 16, 8, ..
1. 피보나치 수열이란?피보나치 수열에 대해 길게 설명할 이유는 없으므로 간단히 식만 쓰도록 하자. 누구나 알고 있을 것이라 생각한다.$$F_n = \begin{cases}0 \; (n=0)\\1 \; (n=1)\\F_{n-1}+F_{n-2} \; (n>1) \end{cases}$$ 2. 재귀함수를 사용하지 않고 피보나치 수열 구하기사실 그리 어렵지는 않다.앞의 수를 기억하고 있어야 하므로 0, 1에서 시작해서 (a, b) -> (b, a+b)로 바꾸어주면 된다. int fib1(int n) { if (n == 0) return 0; if (n == 1) return 1; int a, b, t; a = 0; b = 1; for (int i = 1; i < n; ++i) { t = b; b = a + b;..