์ฃผ์ด์ง ํฌ๊ธฐ n์ ๋ํด ๊ฐ์ ์ ๋ ฅ๋ฐ๊ณ , ์ ์ฌ ํ๊ท ์ ๊ตฌํ๋ ๋ฌธ์ . ์ ์ฌ ํ๊ท ์ ๋ฌธ์ ์ค๋ช ์ ๋์์๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ํ์ด์ฌ์ ์ฃผ์ํ ๊ฒ ์๋๋ฐ, ํ์ด์ฌ์ ๋ด์ฅ๋์ด ์๋ roundํจ์๋ฅผ ์ฐ๋ฉด ์ค๋ต์ฒ๋ฆฌ๋๋ค.
python์์ roundํจ์๋ฅผ ์ฌ์ฉํ ๋ฐ์ฌ๋ฆผ์ ์ฌ์ฌ์ค์ ์ ์์น์ ๋ฐ๋ฅธ๋ค.
์ฌ์ฌ์ค์ ์ 5์์ ๋ฐ์ฌ๋ฆผ ํ ๋, ์์๋ฆฌ ์ซ์๊ฐ ํ์๋ฉด ์ฌ๋ฆผ, ์ง์๋ฉด ๋ด๋ฆผ์ ํ๋ค.
print(round(1.5)) # 2 ์ฌ๋ฆผ
print(round(2.5)) # 2 ๋ด๋ฆผ
print(round(3.5)) # 4 ์ฌ๋ฆผ
print(round(4.5)) # 4 ๋ด๋ฆผ
print(round(5.5)) # 6 ์ฌ๋ฆผ
print(round(6.5)) # 6 ๋ด๋ฆผ
print(round(7.5)) # 8 ์ฌ๋ฆผ
print(round(8.5)) # 8 ๋ด๋ฆผ
print(round(9.5)) # 10 ์ฌ๋ฆผ
๋ฐ๋ผ์, ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ฌ๋ฆผ ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ํํ๋ค.
์์ด๋์ด
1. n ์ ๋ ฅ ๋ฐ๊ธฐ
- n == 0์ด๋ฉด ๋ฌธ์ ์กฐ๊ฑด์ ์ํด print(0)ํ๊ณ ์ข ๋ฃ.
- n != 0์ด๋ฉด ์ฃผ์ด์ง ์ซ์ n๊ฐ ์ ๋ ฅ๋ฐ๊ณ ๋ฆฌ์คํธ์ ์ ์ฅ.
2. n๊ฐ์ ๋ฐ๋ฅธ ์ ์ฌ ํ๊ท ๊ฒฝ๊ณ(border) ๊ตฌํ๊ธฐ
3. ์ฌ๋ผ์ด์ฑ์ ์ํ ๋ฆฌ์คํธ ์ ๋ ฌ
4. ๊ฒฝ๊ณ๊ฐ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ ์ฌ๋ผ์ด์ฑ
์ ์ฒด ์ฝ๋
import sys
def roundUp(num):
if(num - int(num)) >= 0.5:
return int(num) + 1
else:
return int(num)
n = int(sys.stdin.readline().rstrip())
if n == 0:
print(0)
else:
arr = []
for i in range(n):
arr.append(int(sys.stdin.readline().rstrip()))
arr.sort()
border = roundUp(n * 0.15)
print(roundUp(sum(arr[border:n-border])/len(arr[border:n-border])))
์ฝ๋ ์ค๋ช
์๊ฐ์ ํ์ด ์ ๊ฒฝ ์ฐ์ฌ sys๋ก ์ ๋ ฅ๋ฐ์๋ค.
์ฌ๋ผ์ด์ฑ Arr[a:b]์ ์๊ฐ ๋ณต์ก๋๋ O(b - a), sort()์ ์๊ฐ ๋ณต์ก๋๋ O(nlogn)์ด๊ณ n์ ์ต๋๊ฐ์ด 300000์ด๋ฏ๋ก
300000log(300000) โ 5000000... 1์ด ์์ ๊ฐ๋ฅํ ๊ฑฐ ๊ฐ๋ค.
๋๋จธ์ง๋ ์์ด๋์ด ์ค๋ช ๊ณผ ๊ฐ๋ค.
'๐งฉ Problem Solving > [๋ฐฑ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1205 ๋ฑ์ ๊ตฌํ๊ธฐ (python ํ์ด์ฌ) (0) | 2024.03.19 |
---|---|
[๋ฐฑ์ค] 21736 ํ๋ด๊ธฐ๋ ์น๊ตฌ๊ฐ ํ์ํด (python ํ์ด์ฌ) (0) | 2023.11.19 |
[๋ฐฑ์ค] 2839 ์คํ ๋ฐฐ๋ฌ (feat.DP) (python ํ์ด์ฌ) (0) | 2023.08.20 |
[๋ฐฑ์ค] 2447 ๋ณ ์ฐ๊ธฐ - 10 (python ํ์ด์ฌ) (0) | 2023.07.30 |
[๋ฐฑ์ค] 28018 ์๊ฐ์ด ๊ฒน์น ๊น?(feat.imos๋ฒ) (python ํ์ด์ฌ) (0) | 2023.07.18 |