본문 바로가기

dynamic programming 2

[백준,Python]1003번 피보나치 함수(DP,dynamic programming) 1003번 피보나치 함수(DP)문제 : https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 이 문제는 테스트 케이스 수를 받고, 피보나치 함수를 실행했을 때 Fib(0)과 FIb(1), 0과 1이 몇 번 호출되는지 출력하는 문제입니다. 일단, 다른 문제들에서는 그렇게 시간 제한에 대한 제약이 없었는데, 이번 문제에서는 확실히 0.25초(감이 잘 안잡히긴 하지만) 줄어들었습니다.. 문제에서 요구하는 바가 확실히 , '이러이러한 식으로 풀면 컴파일 시간이 오래 걸리기에 풀지 마라'라고 정의 해 둔 것으로 느껴집니다. 일단 그런 것 상관없이 설마 시.. 2020. 8. 19.
[백준,Python]1463번_1로 만들기(DP,Dynamic Programming) 백준 알고리즘(Dynamic Programming 문제)들 중 *1463번_1로 만들기 문제*는 풀어 보면서 느끼는 것도 많고, 굉장히 중요한 문제라고 생각이되어 따로 정리해보는 시간을 가져보려 합니다. (https://www.acmicpc.net/problem/1463) 문제를 쭉 보고 생각을 해보니 N이라는 정수를 입력받았을 때 3가지 연산식을 이용해 N을 나타내는 데 최소값을 구하는 것이니까 min(3i+1, 2i+1,i)로 나타낼 수 있을 것라 생각했다. 그리고 최솟값이 되려면 3으로 나누고 1을 빼주는 것이 무조건 최솟값이므로 (같은 수N을 나타내려면 3i+1과 2i+1 중 당연히 3i+1의 i 값이 더 작을 것이기 때문) while문으로 1이 아닐 때 3으로 나누고 못나눌 경우 1을 뺴주고 나.. 2020. 8. 1.