알고리즘 문제 해결/BOJ 182

[분할 정복] BOJ 2869 달팽이는 올라가고 싶다

https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 �� www.acmicpc.net 이 문제를 처음에 풀 때는 간단하게 while문을 이용해 풀려고 했지만, 시간초과가 나는 것이다. #include using namespace std; int main() { int a, b, v, sum = 0, cnt = 0; cin >> a >> b >> v; while (true) { cnt++; sum += a; if (sum >= v) break; sum -= b; ..

[DP] BOJ 1003 피보나치 함수

https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 우선 피보나치 함수를 구현할 때는 두 가지 방식으로 구현을 할 수 있다. 첫번째 방식 - 재귀 문제의 코드처럼 계속해서 재귀적으로 함수를 호출해서 1 또는 0이 되게 만드는 방식이다. 그렇게 되면 만약 5라는 값이 함수에 들어오게 되면 fib(3)과 fib(4)로 나뉘게 되고 또 그 두 함수들도 계속 쪼개지다가 0과 1이 될 때, 함수 호출을 멈추게 된다. 그렇게 되면 했던 계산을 계속 되풀이할 뿐만 아니라 시간적으로도 엄청난 손해를 보게되는 방식이다. 두 번째 방식 (정답 코드) - DP 두..