https://www.acmicpc.net/problem/1315
풀이: a[i][t] : 힘이 i이고, 지력이 t일 때, 깰 수 있는 퀘스트의 수 초기 능력치를 S, I 라고 했을 때, 깰 수 있는 퀘스트를 모두 클리어한다. 클리어 한 후 모인 스텟 포인트를 힘과 지력에 포인트를 적절히 분배한다. 분배한 힘과 지력으로 못 깬 퀘스트를 클리어 할 수 있는지 확인한다. 주의 사항: 시간이 너무 많이 걸리므로 메모이제이션을 통해 a[i][t] 가 값을 가지고 있다면 바로 리턴하도록 만든다. 이전에 방문했었던 visit이 누적될 수 있으므로 초기화해주는 것을 잊지말자.
https://www.acmicpc.net/problem/1357
풀이: 두 숫자를 뒤집어서 입력을 받는다. 입력받은 두 숫자를 더한 후 다시 뒤집는다. 코드: 사용언어 : Python 3
1 2 x,y=map(int,input()[::-1].split()) print(int(str(x+y)[::-1]))```
https://www.acmicpc.net/problem/14501
풀이: 남은일이 N일 일때, M일의 상담을 완료하는데 걸리는 기간을 T(M)라고 가정한다. 1일에 상담을 했다면 할 수 있는 상담은 1+T(1) ~ N 까지가 있다. 1+T(1) 일에 상담을 했다면 할 수 있는 삼담은 1 + T(1) + T(1+T(1) ~ N 까지가 있다. N을 넘지않도록 주의하며 반복한 후 받을 수 있는 금액에 최대를 출력한다. 코드: 사용언어 : c++ {% highlight c++ %} #include using namespace std; int a, b[16], c[16]; int ts(int q) { int max = 0; for (int i = q; i < a; i++) { int w = c[i] + ts(i + b[i]); if (i + b[i] > a) w = 0; max = max > w ?
https://www.acmicpc.net/problem/1568
풀이: 처음 새의 수 n에서 숫자 k를 노래할 때 나중 새의 수 = n - k 노래의 숫자 수를 1씩 증가시켜가며 새의 수보다 많아질 경우 1로 돌아간다. 만약 새의 수가 0이되면 카운트를 출력한다. 코드: 사용언어 : Python 3
1 2 3 4 5 6 7 8 9 10 11 k=int(input()) cnt,s=0,1 while True: if k==0: break if s>k: s=1 cnt+=1 k-=s s+=1 print(cnt)