-
[λ°±μ€(BOJ)] 2798λ² λΈλμ, CμΈμ΄ νμ΄PS(Problem Solving)/C 2020. 7. 26. 22:28λ°μν
<λΈλμ>, 2798λ²
λ¬Έμ
μΉ΄μ§λ Έμμ μ μΌ μΈκΈ° μλ κ²μ λΈλμμ κ·μΉμ μλΉν μ½λ€. μΉ΄λμ ν©μ΄ 21μ λμ§ μλ νλ λ΄μμ, μΉ΄λμ ν©μ μ΅λν ν¬κ² λ§λλ κ²μμ΄λ€. λΈλμμ μΉ΄μ§λ Έλ§λ€ λ€μν κ·μ μ΄ μλ€.
νκ΅ μ΅κ³ μ λΈλμ κ³ μ κΉμ μΈμ μλ‘μ΄ λΈλμ κ·μΉμ λ§λ€μ΄ μκ·Ό, μ°½μμ΄μ κ²μνλ €κ³ νλ€.
κΉμ μΈ λ²μ μ λΈλμμμ κ° μΉ΄λμλ μμ μ μκ° μ°μ¬ μλ€. κ·Έ λ€μ, λλ¬λ Nμ₯μ μΉ΄λλ₯Ό λͺ¨λ μ«μκ° λ³΄μ΄λλ‘ λ°λ₯μ λλλ€. κ·Έλ° νμ λλ¬λ μ«μ Mμ ν¬κ² μΈμΉλ€.
μ΄μ νλ μ΄μ΄λ μ νλ μκ° μμ Nμ₯μ μΉ΄λ μ€μμ 3μ₯μ μΉ΄λλ₯Ό 골λΌμΌ νλ€. λΈλμ λ³ν κ²μμ΄κΈ° λλ¬Έμ, νλ μ΄μ΄κ° κ³ λ₯Έ μΉ΄λμ ν©μ Mμ λμ§ μμΌλ©΄μ Mκ³Ό μ΅λν κ°κΉκ² λ§λ€μ΄μΌ νλ€.
Nμ₯μ μΉ΄λμ μ¨μ Έ μλ μ«μκ° μ£Όμ΄μ‘μ λ, Mμ λμ§ μμΌλ©΄μ Mμ μ΅λν κ°κΉμ΄ μΉ΄λ 3μ₯μ ν©μ κ΅¬ν΄ μΆλ ₯νμμ€.
μ λ ₯
첫째 μ€μ μΉ΄λμ κ°μ N(3 ≤ N ≤ 100)κ³Ό M(10 ≤ M ≤ 300,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€μλ μΉ΄λμ μ°μ¬ μλ μκ° μ£Όμ΄μ§λ©°, μ΄ κ°μ 100,000μ λμ§ μλλ€.
ν©μ΄ Mμ λμ§ μλ μΉ΄λ 3μ₯μ μ°Ύμ μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ Mμ λμ§ μμΌλ©΄μ Mμ μ΅λν κ°κΉμ΄ μΉ΄λ 3μ₯μ ν©μ μΆλ ₯νλ€.
μμ μ λ ₯ 1 볡μ¬
5 215 6 7 8 9
μμ μΆλ ₯ 1 볡μ¬
21
μμ μ λ ₯ 2 볡μ¬
10 50093 181 245 214 315 36 185 138 216 295
μμ μΆλ ₯ 2 볡μ¬
497
νμ΄
μ΄ λ¬Έμ λ Nμ₯μ μΉ΄λμ 3μ₯μ μΉ΄λμ μμ ν©μ νλμΈ Mμ μ λ ₯ν ν Mμ κ°μ₯ κ·Όμ ν μΉ΄λμ μ 3κ°μ ν©μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μ μνλ κ²μ΄λ€. λλ λ°°μ΄ arrμ Nμ₯μ μΉ΄λμ μλ₯Ό μ λ ₯ν νμ λ°λ³΅λ¬Έμ μ΄μ©ν΄μ λ³μ sumμ 3μ₯μ ν©μ μ μ₯ν΄ ifλ¬Έμ μ¬μ©ν΄μ κ°μ΄ μ΄μ κΉμ§ κ³μ°νλ maxλ³΄λ€ ν¬κ³ μ£Όμ΄μ§ Mλ³΄λ€ μκ±°λ κ°μ λ κ·Έ κ°μ μΆλ ₯νλ νλ‘κ·Έλ¨μ λ§λ€μλ€.
#include <stdio.h> int main(void) { int N, M; int num; int arr[100]; int max = 0; int sum = 0; scanf_s("%d %d", &N, &M); for (int i = 0; i < N; i++) scanf("%d", &arr[i]); max = arr[0]; for(int i=0;i<N;i++) for(int j=i+1;j<N;j++) for (int k = j + 1; k < N; k++) { sum = arr[i] + arr[j] + arr[k]; if (sum <= M && sum > max) max = sum; } printf("%d", max); return 0; }
λ°μν