전체 글
-
초급반 2주차 풀이 - 반복문, 배열, 문자열ALOHA - 2022/ALOHA - 초급반 (2022 1학기) 2022. 5. 1. 16:08
A. [10952] A+B - 5 (Bronze III) 더보기 A와 B를 입력받은 뒤, A ≠ 0이거나 B ≠ 0인 동안 A+B를 계속 출력해주면 됩니다. int main(){ while (1){ int a, b; scanf("%d %d", &a, &b); if (a != 0 && b != 0) break; printf("%d\n", a+b); } } B. [10872] 팩토리얼 (Bronze III) 더보기 N!의 정의는 1부터 N까지 곱한 값입니다. 그러니 1부터 N까지 곱해주면 됩니다. int main(){ int n, fac = 1; scanf("%d", &n); for (i = 1; i
-
고급반 1주차 풀이 - 반가워요ALOHA - 2022/ALOHA - 고급반 (2022 1학기) 2022. 4. 30. 15:11
1. [2228] 구간 나누기 (Gold IV) 더보기 너무 당연하게도 DP 문제입니다. \( DP_{i,j} := \) 첫 \( i \)개의 수에서 \( j \)개의 구간으로 만들 수 있는 최댓값 이라고 정의해봅시다. \( DP_{i,j} \)의 점화식은 아래 2가지 경우로 나눠서 구할 수 있습니다. A. \( A_{i} \)를 구간에 포함시키지 않기 이 경우, \( i-1 \)개의 수에서 \( j \)개의 구간을 사용하므로 답은 \( DP_{i-1, j} \)가 됩니다. B. \( A_{k~i} \) 구간을 선택하기 이 경우, \( [1, k-1) \) 구간에서 \( j-1 \)개의 구간을 더 사용해야 하므로 \( DP_{k-2, j-1} + \sum_{l=k}^{i} A_{l} \)가 답이 됩니다...
-
중급반 1주차 풀이 - Brute ForceALOHA - 2022/ALOHA - 중급반 (2022 1학기) 2022. 4. 30. 01:18
1. [2309] 일곱 난쟁이 (Bronze I) 더보기 정답인 7명을 다 고르는 건 힘든 작업입니다. 그러니까 정답이 아닌 2명을 골라봅시다. 9명의 키의 합 - (빼는 2명의 키의 합) = 100인 2명을 고르면 되고, \( O(N^2) \)에 해결할 수 있습니다. int arr[10]; void Main(){ int n; cin >> n; int sum = 0; for (int i = 1; i > arr[i]; sum += arr[i]; } sort(arr+1, arr+10); for (int i = 1; i > k; for (int i = 1; i arr[i][j]; } } ll ans = 1e18, mxp = 0; for (int h = 0; h t; while (t--){ ll n; cin >..
-
초급반 1주차 풀이 - 입출력, 연산자, 조건문ALOHA - 2022/ALOHA - 초급반 (2022 1학기) 2022. 4. 29. 23:34
1. [1000] A+B (Bronze V) 더보기 두 수를 입력받은 뒤, 두 수의 합을 출력해주면 됩니다. int main(){ int a, b; scanf("%d %d", &a, &b); printf("%d", a+b); } 2. [1001] A-B (Bronze V) 더보기 [1000] A+B랑 비슷합니다. 대신 이번에는 A - B를 출력하면 됩니다. int main(){ int a, b; scanf("%d %d", &a, &b); printf("%d", a-b); } 3. [10998] A×B (Bronze V) 더보기 이제는 두 수의 곱을 출력하면 됩니다. int main(){ int a, b; scanf("%d %d", &a, &b); printf("%d", a*b); } 4. [1008] A..