/images/logo.png

[백준]9507 Generations of Tribbles

https://www.acmicpc.net/problem/9507 풀이: 문제에 DP가 주어져 있으므로 그대로 하면된다. 다만 큰 수가 나오므로 long long을 써야할 것이다. 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <iostream>using namespace std; long long a[70] = {1,1,2,4,0}; int main(void) { int T,n; int cnt = 4; cin >> T; for (int i = 0; i < T; i++) { cin >> n; for (int t = cnt; t < n + 1; t++) { a[t] = a[t - 1] + a[t - 2] + a[t - 3] + a[t - 4]; } cout << a[n] << endl; cnt = n + 1; } return 0; }

1011 Fly me to the Alpha Centauri

https://www.acmicpc.net/problem/1011 풀이: 거리가 제곱수 일 때(d = s^2), 그 거리 까지 갈 수 있는 최소 작동수에서 최대 거리는 그 수의 제곱근(s) 이다. 최소 작동수는 대칭일때 만들어지므로 제곱수일 때 최소 작동수는 2*s - 1이 된다. 거리가 제곱수가 아니라면, 거리에서 그 거리보다 작은 제곱수를 뺀 나머지로 계산한다. (d - s^2) / s + 1 즉 제곱수 만큼 간 후 남은 거리를 갈 수 있는 최대 거리인 s로 나눈 값에 올림한 값과 같다.

1016 제곱 ㄴㄴ 수

https://www.acmicpc.net/problem/1016 풀이: min 수 부터 max 까지 제곱수의 배수가 되는 수를 찾는다. max-min+1 에서 위에서 찾은 제곱수의 배수의 개수를 뺀다. 코드: 사용언어 : Python 3 1 2 3 4 5 6 7 8 9 10 11 n,m=map(int,input().split()) a,b=0,[0]*1000001 for i in range(2,int(m**.5)+1): q=n if n%(i*i)!=0: q=(n//(i*i)+1)*i*i for t in range(q,m+1,i*i): if b[t-n]==0: b[t-n]=1 a+=1 print(m-n+1-a)

10569 다면체

https://www.acmicpc.net/problem/10569 풀이: 면의수 = 2 - 꼭짓점의 수 + 모서리의 수 코드: 사용언어 : Python 3 1 2 3 4 t=int(input()) for i in range(t): v,e=map(int, input().split()) print(2-v+e)

1072 게임

https://www.acmicpc.net/problem/1072 풀이: 게임횟수 : x, 이긴게임 : y, 더해야하는 판수 a 100 * y/x + 1 = 100 * y+a/x+a 100 * y/x + 1 = c 로 놓고 c = 100 * y+a/x+a cx + ca = 100y + 100a (c - 100)a = 100y - cx a = (100y - cx) / (c - 100) 이렇게 나온 a값을 올림을 하면 더해야하는 판수가 나오게된다. 코드: 사용언어 : c++