🌱 β†’ 🌳

[λ°±μ€€] 2108번: 톡계학 python λ³Έλ¬Έ

Algorithms

[λ°±μ€€] 2108번: 톡계학 python

thals0 2022. 10. 2. 12:30
728x90

https://www.acmicpc.net/problem/2108

 

2108번: 톡계학

첫째 쀄에 수의 개수 N(1 ≀ N ≀ 500,000)이 주어진닀. 단, N은 ν™€μˆ˜μ΄λ‹€. κ·Έ λ‹€μŒ N개의 μ€„μ—λŠ” μ •μˆ˜λ“€μ΄ 주어진닀. μž…λ ₯λ˜λŠ” μ •μˆ˜μ˜ μ ˆλŒ“κ°’μ€ 4,000을 λ„˜μ§€ μ•ŠλŠ”λ‹€.

www.acmicpc.net

 

μ •λ‹΅μ½”λ“œ:

from collections import Counter
import sys

a = int(sys.stdin.readline())
b= []
for i in range(a):
  b.append(int(sys.stdin.readline()))

b.sort()

c = a//2 

# μ‚°μˆ ν‰κ· 
print(round(sum(b)/a))
# 쀑앙값
print(b[c])

# μ΅œλΉˆκ°’
cnt = Counter(b).most_common(2)

if len(b)>1 and cnt[0][1] == cnt[1][1]:
    print(cnt[1][0])
else:
  print(cnt[0][0])

# μ΅œλŒ“κ°’ - μ΅œμ†Œκ°’
print(b[a-1]-b[0])

 

λ‚˜λ¨Έμ§€λŠ” κ·ΈλŸ­μ €λŸ­ ν•  만 ν–ˆκ³ 

 

μ΅œλΉˆλ„κ°€ κ°€μž₯ λ¬Έμ œμ˜€λŠ”λ° count()ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹œκ°„μ΄ˆκ³Όκ°€ λ– μ„œ λ‹€λ₯Έ 방법을 생각해야 ν–ˆλ‹€

κ²€μƒ‰ν•΄λ³΄λ‹ˆ collection의 Counterλ₯Ό ν™œμš©ν•˜μ—¬ λΉˆλ„μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 것을 확인할 수 μžˆμ—ˆλ‹€

 

Counter(b)λ₯Ό ν•˜λ©΄ dict ν˜•νƒœλ‘œ 좜λ ₯되기 λ•Œλ¬Έμ— .most_common()ν•¨μˆ˜λ₯Ό λ¦¬μŠ€νŠΈμ— λ‹΄κΈ΄ νŠœν”Œ ν˜•νƒœλ‘œ μš”μ†Œλ“€μ˜ λΉˆλ„λ₯Ό κ΅¬ν–ˆλ‹€

 

5개의 수 1,3,8,-1,2λ₯Ό μž…λ ₯ν•œ 경우 counter()와 counter().most_common()은 μ•„λž˜μ™€ κ°™λ‹€

print("Counter(b) = " ,Counter(b))
print("Counter(b).most_common(2) =" , Counter(b).most_common())

 

most_common()을 톡해 λ§Œλ“€μ–΄μ§„ νŠœν”Œμ€ (μš”μ†Œ, λΉˆλ„μˆ˜) ν˜•νƒœλ‘œ λΉˆλ„μˆ˜κ°€ λ§Žμ€ μˆ˜λΆ€ν„° μž‘μ€μˆ˜ μˆœμ„œλŒ€λ‘œ μ €μž₯λ˜μ–΄ 있고, 같은 λΉˆλ„μˆ˜λΌλ©΄ 처음 λ‚˜μ˜¨ 값이 μ•žμ— μœ„μΉ˜ν•œλ‹€.

 

μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ b.sort()둜 정렬해쀬기 λ•Œλ¬Έμ—

μ΅œλΉˆκ°’ 쀑 μ΅œμ†Œκ°’: count[0][0]

μ΅œλΉˆκ°’ 쀑 λ‘λ²ˆμ§Έλ‘œ μž‘μ€ κ°’: count[1][0]

μž„μ„ 확인할 수 μžˆλ‹€

 

μ°Έκ³ ν•œ λΈ”λ‘œκ·Έ

https://joylee-developer.tistory.com/94

 

(파이썬) λ°±μ€€ μ•Œκ³ λ¦¬μ¦˜ - 2108번 / Counter

톡계학 https://www.acmicpc.net/problem/2108 2108번: 톡계학 첫째 쀄에 수의 개수 N(1 ≀ N ≀ 500,000)이 주어진닀. 단, N은 ν™€μˆ˜μ΄λ‹€. κ·Έ λ‹€μŒ N개의 μ€„μ—λŠ” μ •μˆ˜λ“€μ΄ 주어진닀. μž…λ ₯λ˜λŠ” μ •μˆ˜μ˜ μ ˆλŒ“κ°’μ€ 4,0..

joylee-developer.tistory.com

 

728x90