알고리즘 문제 풀이/1DP_과제(~180615)
171026_1094_막대기
#include using namespace std; int main(){ int goal; cin >> goal; int t_length=64; int sht=64; int cnt=1; while(t_length>goal) { sht/=2; cnt++; if(t_length-sht>=goal) {t_length-=sht;cnt--;} } cout while(t_length>goal)가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. ->sht/=2; 개수는 1개가 2개가 되니 cnt++;만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다면 ->if(t_length-sht>=goal) , 위에서 자른 막대의 절반 중 하나를 버린다. -> t_len..