π [λ°±μ€μκ³ λ¦¬μ¦ νμ΄] Q.2437 μ μΈ λ¬Έμ νμ΄
π λ¬Έμ
https://www.acmicpc.net/problem/2437
νλμ μν μ μΈμ μ΄μ©νμ¬ λ¬Όκ±΄μ 무κ²λ₯Ό μΈ‘μ νλ €κ³ νλ€. μ΄ μ μΈμ μ νμ λμλ 물건μ΄λ μΆλ₯Ό μ¬λ €λλ μ μκ° λ¬λ € μκ³ ,
μνμ κΈΈμ΄λ κ°λ€. λν, μ μΈμ νμͺ½μλ μ μΈμΆλ€λ§ λμ μ μκ³ , λ€λ₯Έ μͺ½μλ 무κ²λ₯Ό μΈ‘μ νλ €λ λ¬Όκ±΄λ§ μ¬λ €λμ μ μλ€.
무κ²κ° μμ μ μμΈ Nκ°μ μ μΈμΆκ° μ£Όμ΄μ§ λ, μ΄ μΆλ€μ μ¬μ©νμ¬ μΈ‘μ ν μ μλ μμ μ μ λ¬΄κ² μ€ μ΅μκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μλ₯Ό λ€μ΄, 무κ²κ° κ°κ° 3, 1, 6, 2, 7, 30, 1μΈ 7κ°μ μ μΈμΆκ° μ£Όμ΄μ‘μ λ, μ΄ μΆλ€λ‘ μΈ‘μ ν μ μλ μμ μ μ λ¬΄κ² μ€ μ΅μκ°μ 21μ΄λ€.
π μ κ·Όλ²
Q.2437 μ μΈ λ¬Έμ νμ΄μ λλ€.
무κ²κ° μμ μ μμΈ Nκ°μ μ μΈμΆκ° μ£Όμ΄μ§κ³ μ΄ μΆλ€μ μ΄μ©ν΄ μΈ‘μ ν μ μλ μμ μ μ λ¬΄κ² μ€ μ΅μκ°μ ꡬνλ λ¬Έμ μ λλ€.
μ μΈμΆμ 무κ²κ° 무쑰건 μμ μ μλ‘ μ£Όμ΄μ§κΈ° λλ¬Έμ 그리λ μκ³ λ¦¬μ¦μΌλ‘ νμ΄κ° κ°λ₯ν©λλ€.
μ²μμλ μ μΈμΆλ₯Ό μ μ 무κ²λΆν° μ€λ¦μ°¨μμΌλ‘ μ λ ¬νμ¬ μ΄μ€ forλ¬ΈμΌλ‘ μΈ‘μ ν 무κ²λ₯Ό 1μ© λν΄λκ°λ©° μΈ‘μ μ΄ κ°λ₯νμ§λ₯Ό νμΈνμμ΅λλ€. μ΄ λ°©λ²μΌλ‘λ νμ΄κ° κ°λ₯νμ§λ§ νλνλ μΌμΌμ΄ λ€ νμΈνκΈ° λλ¬Έμ λ λ§μ μμ ν μ€νΈμΌμ΄μ€μμ μκ°μ΄κ³Όκ° λμμ΅λλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€. λ§μ½ μΆκ° 1 2 κ° μλ€λ©΄ νμ¬ μΆλ€μ 무κ²λ₯Ό λ€ λν 3κΉμ§ μ¦ 1 , 2 , 3 κΉμ§ μΈ‘μ μ΄ κ°λ₯ν©λλ€.
μ¬κΈ°μ 3μ μΆλ₯Ό μΆκ°νλ€λ©΄ (1,2,3) 1λΆν° νμ¬ μνμμ λͺ¨λ μΆλ₯Ό λν κ°μΈ μ΅λ 6 κΉμ§
1+3 , 2+3, 3+3
μ¦ 1, 2, 3, 4, 5 ,6 κΉμ§ μΈ‘μ κ°λ₯ν©λλ€.
νμ§λ§ μ¬κΈ°μ 8μ μΆκ° μΆκ°λλ€λ©΄ (1,2,3,8)
1, 2, 3, 4, 5, 6, 8, 9,10,11,12,13,14 7μ κ°μ μΈ‘μ μ΄ λΆκ°λ₯ν©λλ€.
μ¬κΈ°μ μΆλ€μ λμ ν©+1 < λ€μ 무κ²μ μΆ μ΄λ©΄ μΆλ€μ λμ ν© +1μ μΈ‘μ ν μ μλ κ²μ μ μ μμ΅λλ€.
νμ¬ μνμ μΆλ€μ λμ ν©μ΄ μ΄λ―Έ νμ¬ μνλ‘ λ§λ€ μ μλ κ°μ μ΅λκ°μ΄κΈ° λλ¬Έμ λλ€.
(ex μ΄λ―Έ 1,2,3 μΌλ‘ μ΄λ―Έ μ΅λλ‘ κ°λ₯ν 6κΉμ§ μΈ‘μ μ΄ κ°λ₯νμ§λ§ λ€μ μΆκ° 8μ΄λΌλ©΄ 8λΆν°λ μΈ‘μ μ΄ κ°λ₯ν΄λ 7μ λ§λ€μκ° μμ)
κ·Έλ κΈ° λλ¬Έμ λ€μ 무κ²μ μΆκ° μ μ΄λ νμ¬ μνμμ λ§λ€ μ μλ μ΅λκ°λ³΄λ€ μ΄νμ¬μΌ νμ¬ μνμ μ΅λκ°+1 μ μΈ‘μ ν μ μμ΅λλ€.
π» μ½λ
package problem.greedy;
import java.io.*;
import java.util.Arrays;
public class Main_2437 {
static int weight[];
static int n;
static int max = 0;
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
input();
int result = solve();
bw.write(Integer.toString(result));
bw.flush();
bw.close();
}
public static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
weight = new int[n];
String inputs[] = br.readLine().split(" ");
for (int i = 0; i < n; i++) {
weight[i] = Integer.parseInt(inputs[i]);
max += weight[i];
}
}
public static int solve() {
int sum = 0;
Arrays.sort(weight);
for (int i = 0; i < n; i++) {
if (sum + 1 < weight[i]) {
return sum + 1;
}
sum += weight[i];
}
return max + 1;
}
}