https://www.acmicpc.net/problem/2108
2108๋ฒ: ํต๊ณํ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋จ, N์ ํ์์ด๋ค. ๊ทธ ๋ค์ N๊ฐ์ ์ค์๋ ์ ์๋ค์ด ์ฃผ์ด์ง๋ค. ์ ๋ ฅ๋๋ ์ ์์ ์ ๋๊ฐ์ 4,000์ ๋์ง ์๋๋ค.
www.acmicpc.net
python
import sys
input = sys.stdin.readline
from collections import Counter
def find_mode(data):
cnt = Counter(data)
cnt = cnt.most_common()
if cnt[0][1] == cnt[1][1]:
return cnt[1][0]
else:
return cnt[0][0]
data = []
n = int(input())
for _ in range(n):
x = int(input())
data.append(x)
if n == 1:
print(x)
print(x)
print(x)
print(0)
exit()
data.sort()
print(int(round(sum(data)/n,0))) #์ฐ์ ํ๊ท
print(data[n//2]) #์ค์๊ฐ
print(find_mode(data)) #์ต๋น๊ฐ
print(data[-1]-data[0]) #๋ฒ์
1. ์ ๋ ฅ๋ฐ์ data๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
2. ์ฐ์ ํ๊ท ๊ตฌํ๊ธฐ (์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ) - sum(), round() ํ์ฉ
round(number, ndigits)
- number๋ฅผ ์์์ ndigits ์ ๋ฐ๋๋ก ๋ฐ์ฌ๋ฆผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
- ndigits ์๋ตํ๋ฉด, number์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ๋ฐํ
3. ์ค์๊ฐ ๊ตฌํ๊ธฐ - ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ๊ตฌํ๊ธฐ
4. ์ต๋น๊ฐ ๊ตฌํ๊ธฐ - Counter ์ด์ฉ
- most_common() ํจ์๋ฅผ ์ด์ฉํด์ counter๊ฐ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ์ ๋ ์ต์ด 2๊ฐ๋ฅผ ๊ตฌํ๋ค.
- ๋์ counter๊ฐ์ด ๊ฐ๋ค๋ฉด ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒ์ด๋ฏ๋ก ๋๋ฒ์งธ ์๋ฅผ, ๋ค๋ฅด๋ค๋ฉด ์ต๋น๊ฐ์ด ํ๋์ด๋ฏ๋ก ์ฒซ๋ฒ์งธ ์๋ฅผ ๋ฆฌํด
5. ๋ฒ์ ๊ตฌํ๊ธฐ
6. n==1์ธ ๊ฒฝ์ฐ ์ต๋น๊ฐ๊ณผ ๋ฒ์๋ฅผ ๊ตฌํ ๋ ์ธ๋ฑ์ค ์๋ฌ๊ฐ ๋๊ธฐ ๋๋ฌธ์, ์ด ๊ฒฝ์ฐ๋ ๋ฐ๋ก ์ถ๋ ฅํด์ค๋ค.
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]4673๋ฒ: ์ ํ ๋๋ฒ (0) | 2023.05.01 |
---|---|
[๋ฐฑ์ค]1966๋ฒ: ํ๋ฆฐํฐ ํ (0) | 2023.04.30 |
[๋ฐฑ์ค]1475๋ฒ: ๋ฐฉ ๋ฒํธ (0) | 2023.04.24 |
[๋ฐฑ์ค] 1316๋ฒ: ๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค (0) | 2023.04.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] k๋ฒ์งธ์ (0) | 2023.04.06 |