λ¬Έμ
μλ₯Ό μ²λ¦¬νλ κ²μ ν΅κ³νμμ μλΉν μ€μν μΌμ΄λ€. ν΅κ³νμμ 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
(0 + 0 + (-1)) / 3 = -0.333333... μ΄κ³ μ΄λ₯Ό 첫째 μ리μμ λ°μ¬λ¦Όνλ©΄ 0μ΄λ€. -0μΌλ‘ μΆλ ₯νλ©΄ μλλ€.
λ¬Έμ νμ΄
λμ νμ΄
[ μκ° μ΄κ³Ό ]
import sys
n = int(sys.stdin.readline())
# n κ°μ μ«μλ₯Ό μ
λ ₯λ°μ 리μ€νΈμ μ μ₯νκΈ°
num_list = []
for _ in range(n):
num_list.append(int(sys.stdin.readline()))
# μ°μ νκ· μΆλ ₯
print(int(round(sum(num_list)/n, 0)))
# μ€μκ° μΆλ ₯
num_list.sort()
print(num_list[int(n/2)])
# μ΅λΉκ° μΆλ ₯
mode = {}
for i in num_list:
mode[i] = num_list.count(i)
max_mode_key_list = [ key for key, value in mode.items() if value == max(mode.values())]
if len(max_mode_key_list) > 1:
max_mode_key_list.sort()
print(max_mode_key_list[1])
else:
max_mode_key_list[0]
# μ΅λκ°κ³Ό μ΅μκ°μ μ°¨μ΄ μΆλ ₯
print(abs(max(num_list)-min(num_list)))
μ¬λ¬ λ¬Έμμ΄μ λ°λ³΅νμ¬ μ λ ₯λ°λ λ¬Έμ μ κ²½μ° input() ν¨μλ₯Ό μ¬μ©νλ©΄, μκ° μ΄κ³Όκ° λ¬λ€.
κ·Έλμ sys.stdin.readline() λ₯Ό μ¬μ©ν΄ μ λ ₯λ°λ λ°©λ²μ λ°κΎΈμ΄ 보μλλ°λ μκ° μ΄κ³Όκ° λ¬λ€.
λ€λ₯Έ μ¬λλ€μ νμ΄λ₯Ό μ°Έκ³ ν΄ λ³Έ κ²°κ³Ό
from collections import Counter
μ μ¬μ©νμ¬ μ΅λΉκ°μ μΆλ ₯νλ λ°©λ²μ counterμ μ¬μ©νμ¬ νμλ€.
[μ λ΅]
import sys
from collections import Counter
n = int(sys.stdin.readline())
# n κ°μ μ«μλ₯Ό μ
λ ₯λ°μ 리μ€νΈμ μ μ₯νκΈ°
num_list = [int(sys.stdin.readline()) for _ in range(n)]
# μ°μ νκ· μΆλ ₯
print(int(round(sum(num_list)/n, 0)))
# μ€μκ° μΆλ ₯
num_list.sort()
print(num_list[int(n/2)])
# μ΅λΉκ° μΆλ ₯
mode = Counter(num_list)
mode_most_list = mode.most_common(2)
if len(mode_most_list) == 1:
print(mode_most_list[0][0])
else:
if mode_most_list[0][1] == mode_most_list[1][1]:
print(mode_most_list[1][0])
else:
print(mode_most_list[0][0])
# μ΅λκ°κ³Ό μ΅μκ°μ μ°¨μ΄ μΆλ ₯
print(abs(max(num_list)-min(num_list)))
λ€λ₯Έ μ¬λ νμ΄
import sys
input=sys.stdin.readline
n=int(input())
arr=[]
for i in range(n):
arr.append(int(input()))
arr.sort()#μ€μκ°μ ꡬνκΈ° μν΄ μ λ ¬
print(round(sum(arr)/len(arr)))#1) μ°μ νκ·
print(arr[len(arr)//2])#2) μ€μκ°
#μ΅λΉκ°
dic=dict()
for i in arr:#λΉλμ ꡬνκΈ°
if i in dic:
dic[i]+=1
else:
dic[i]=1
mx=max(dic.values())#λΉλμ μ€ μ΅λκ° κ΅¬νκΈ°
mx_dic=[]#μ΅λΉκ° μ«μλ₯Ό μ μ₯ν λ°°μ΄
for i in dic:#λΉλμ λμ
λ리μμ
if mx==dic[i]:#μ΅λΉκ°μ keyμ μ₯
mx_dic.append(i)
if len(mx_dic)>1:#μ΅λΉκ°μ΄ μ¬λ¬κ°λΌλ©΄
print(mx_dic[1])#λλ²μ§Έλ‘ μμ κ° 3)μ΅λΉκ°
else:#νλλΌλ©΄
print(mx_dic[0])#ν΄λΉ κ° μΆλ ₯ 3)μ΅λΉκ°
print(max(arr)-min(arr))#4) λ²μ
- dicμ κ°μ λ£μ λ, if i in dic μ¬μ©νλ©΄ λλ€
- λμ λ리μ κ°μ μ΅λκ° κ΅¬ν λ, max(dic.values())
μ€μν κ°λ
collection λͺ¨λ
- Counter(리μ€νΈ) : 리μ€νΈ λ΄μ κ°λ€μ count κ°μ λμ λ리 ννλ‘ λ°νν΄μ€
import collections
list1 = [1, 2, 10, 1, 4, 10, 2, 1, 1, 10]
print(collections.Counter(list1)) # Counter({1: 4, 10: 3, 2: 2, 4: 1})
list2 = [1, 2, 10, 1, 4, 10, 2, 1, 1]
print(collections.Counter(list2)) # Counter({1: 4, 2: 2, 10: 2, 4: 1})
- λμ λ리.most_common() : λμ λ리 λ΄μ κ°λ€μ μ΅λΉκ°λ€μ λ΄λ¦Όμ°¨μμΌλ‘ 리μ€νΈ ννλ‘ λ°ν
print(collections.Counter(list1).most_common()) # [(1, 4), (10, 3), (2, 2), (4, 1)]