2108 JAVA ν΅κ³ν
π λ¬Έμ
μλ₯Ό μ²λ¦¬νλ κ²μ ν΅κ³νμμ μλΉν μ€μν μΌμ΄λ€. ν΅κ³νμμ Nκ°μ μλ₯Ό λννλ κΈ°λ³Έ ν΅κ³κ°μλ λ€μκ³Ό κ°μ κ²λ€μ΄ μλ€. λ¨, Nμ νμλΌκ³ κ°μ νμ.
μ°μ νκ· : Nκ°μ μλ€μ ν©μ NμΌλ‘ λλ κ°
μ€μκ° : Nκ°μ μλ€μ μ¦κ°νλ μμλ‘ λμ΄νμ κ²½μ° κ·Έ μ€μμ μμΉνλ κ°
μ΅λΉκ° : Nκ°μ μλ€ μ€ κ°μ₯ λ§μ΄ λνλλ κ°
λ²μ : Nκ°μ μλ€ μ€ μ΅λκ°κ³Ό μ΅μκ°μ μ°¨μ΄
Nκ°μ μκ° μ£Όμ΄μ‘μ λ, λ€ κ°μ§ κΈ°λ³Έ ν΅κ³κ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
π μ λ ₯
첫째 μ€μ μμ κ°μ N(1 ≤ N ≤ 500,000)μ΄ μ£Όμ΄μ§λ€. λ¨, Nμ νμμ΄λ€. κ·Έ λ€μ Nκ°μ μ€μλ μ μλ€μ΄ μ£Όμ΄μ§λ€. μ λ ₯λλ μ μμ μ λκ°μ 4,000μ λμ§ μλλ€.
π μΆλ ₯
첫째 μ€μλ μ°μ νκ· μ μΆλ ₯νλ€. μμμ μ΄ν 첫째 μ리μμ λ°μ¬λ¦Όν κ°μ μΆλ ₯νλ€.
λμ§Έ μ€μλ μ€μκ°μ μΆλ ₯νλ€.
μ μ§Έ μ€μλ μ΅λΉκ°μ μΆλ ₯νλ€. μ¬λ¬ κ° μμ λμλ μ΅λΉκ° μ€ λ λ²μ§Έλ‘ μμ κ°μ μΆλ ₯νλ€.
λ·μ§Έ μ€μλ λ²μλ₯Ό μΆλ ₯νλ€.
π μμ
μμ μ λ ₯ 1
5
1
3
8
-2
2
μμ μΆλ ₯ 1
2
2
1
10
μμ μ λ ₯ 2
1
4000
μμ μΆλ ₯ 2
4000
4000
4000
0
μμ μ λ ₯ 3
5
-1
-2
-3
-1
-2
μμ μΆλ ₯ 3
-2
-2
-1
2
μμ μ λ ₯ 4
3
0
0
-1
μμ μΆλ ₯ 4
0
0
0
1
π μ½λ
λλ¨Έμ§λ λ€ μ½κ² ν΄κ²°μ΄ κ°λ₯νμ§λ§, μ΅λΉκ°μ κ²½μ°μλ κ°μ μ μ₯νκ³ λΉκ΅νλ κ³Όμ μ΄ νμνλ€. key, value μ¬μ©μ μν΄ HashMapμ μ΄μ©νκ³ , μ΄λ₯Ό ν΅ν΄ μ
λ ₯λ κ° μ«μμ λΉλλ₯Ό μ μ₯νλ€.
μ΄ν, μ΅λΉλλ₯Ό μ°Ύμμ μ΅λΉλλ₯Ό κ°κ³ μλ μ«μλ€ μ€μ λ λ²μ§Έλ‘ μμ μ«μ(Key)λ₯Ό μ ννλ€. λ§μ½, μ΅λΉλλ₯Ό κ°κ³ μλ μ«μκ° 1κ°λΌλ©΄ κ·Έ μ«μλ₯Ό μΆλ ₯νλ€.
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
ArrayList<Integer> ar = new ArrayList<>();
HashMap<Integer, Integer> map = new HashMap<>();
double sum = 0;
for(int i = 0; i < n; i++){
int num = Integer.parseInt(br.readLine());
ar.add(num);
sum += num;
// μ΅λΉκ°μ μν΄ μ μ₯
if(map.containsKey(num)) map.replace(num, map.get(num) + 1);
else map.put(num, 1);
}
// μ΅λΉκ° ꡬνκΈ°
int max = 0;
for (int value : map.values()){
max = Math.max(max, value);
}
List<Integer> li = new ArrayList<>();
for (int key : map.keySet()){
if(map.get(key) == max){
li.add(key);
}
}
Collections.sort(li);
// μ λ ¬
Collections.sort(ar);
// μ°μ νκ·
System.out.println(Math.round(sum/n));
// μ€μκ°
System.out.println(ar.get(((int)ar.size()/2)));
// μ΅λΉκ°
System.out.println(li.size() == 1 ? li.get(0) : li.get(1));
// λ²μ
System.out.println(Math.abs(ar.get(ar.size()-1)-ar.get(0)));
}
}