π°ππππππππ/π±πππππππ
[λ°±μ€/Java] μλ°μ κ°νΈ 1758
ν΄λ²λ
2023. 11. 8. 15:53
λ°μν
λ¬Έμ
https://www.acmicpc.net/problem/1758
1758λ²: μλ°μ κ°νΈ
첫째 μ€μ μ€νλ°μ€ μμ μ μλ μ¬λμ μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€. λμ§Έ μ€λΆν° μ΄ Nκ°μ μ€μ κ° μ¬λμ΄ μ£Όλ €κ³ νλ νμ΄ μ£Όμ΄μ§λ€. νμ 100,000λ³΄λ€ μκ±°λ κ°
www.acmicpc.net
κ±°μ€λ¦λμ λ°μ μ μλ μ΅λκ°μ ꡬνλ λ¬Έμ μ΄λ€.
νμ΄
μ΅λκ°μ ꡬνκΈ° μν΄μλ νμ κ°μ₯ λ§μ΄ μ£Όλ μ¬λλΆν° μ°¨λ‘λλ‘ μμΌνλ€.
κ·Έλμ λ°°μ΄μ μ λ ¬ν΄μ£Όκ³ μ΅λκ°μ ꡬνλ€.
package algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class Main {
public int tip(int tipMoney, int index) {
int tipCoin = tipMoney - index;
return tipCoin < 0 ? 0 : tipCoin;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// μλ°μ κ°νΈ νμ λ°λλ€......
// μλ 10μ μ€λ €κ³ νλλ° (λ°μ λ±μ -1) λ§νΌ κ°νΈμκ² μ€λ€.
// μλ₯Όλ€μ΄ 5λ±μΌλ‘ λ°μλ€λ©΄ 10 - (5-1) = 6μ λ°κ² λλ€.
// λ§μ½ μμλ©΄ νμ 0μ λ°λλ€. (λ°μ λ±μ -1) <= (μ£Όλ €νλ ν) μ΄λΌλ©΄ νμ λ°μ μ μλ€.
int num = Integer.parseInt(br.readLine());
int[] arr = new int[num];
long answer = 0;
Main m = new Main();
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
answer += m.tip(arr[arr.length-i-1],i);
}
System.out.println(answer);
}
}
μ λ΅
λ°μν