๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 18110 solved.ac (+๋ฐ˜์˜ฌ๋ฆผ ํ•จ์ˆ˜ round์— ๋Œ€ํ•ด) (python ํŒŒ์ด์ฌ)

์ œ๋ด‰์•„ 2023. 8. 23. 17:09
 

18110๋ฒˆ: solved.ac

5๋ช…์˜ 15%๋Š” 0.75๋ช…์œผ๋กœ, ์ด๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋ฉด 1๋ช…์ด๋‹ค. ๋”ฐ๋ผ์„œ solved.ac๋Š” ๊ฐ€์žฅ ๋†’์€ ๋‚œ์ด๋„ ์˜๊ฒฌ๊ณผ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‚œ์ด๋„ ์˜๊ฒฌ์„ ํ•˜๋‚˜์”ฉ ์ œ์™ธํ•˜๊ณ , {5, 5, 7}์— ๋Œ€ํ•œ ํ‰๊ท ์œผ๋กœ ๋ฌธ์ œ ๋‚œ์ด๋„๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

www.acmicpc.net


์ฃผ์–ด์ง„ ํฌ๊ธฐ 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์ดˆ ์•ˆ์— ๊ฐ€๋Šฅํ•œ ๊ฑฐ ๊ฐ™๋‹ค.

 

๋‚˜๋จธ์ง€๋Š” ์•„์ด๋””์–ด ์„ค๋ช…๊ณผ ๊ฐ™๋‹ค.