๋ฌธ์
solved.ac๋ Sogang ICPC Team ํํ์๋ค์ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ์ ๋์์ ์ฃผ๊ณ ์ ๋ง๋ ์๋น์ค์ด๋ค. ์ง๊ธ์ ์๊ฐ๋๋ฟ๋ง ์๋๋ผ ์๋ง์ ์ฌ๋๋ค์ด solved.ac์ ๋์์ ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋ค.
ICPC Team์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์์ ๋ฌธ์ ํ์ด๋ฅผ ์ฐ์ตํ๋๋ฐ, ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ๋ฌธ์ ๋ค์๋ ๋์ด๋ ํ๊ธฐ๊ฐ ์์ด์, ์ง๊ธ๊น์ง๋ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํ์ด ๋ณด๊ณ ์ถ๋๋ผ๋ ๋์ด๋๋ฅผ ๊ฐ๋ ํ๊ธฐ ์ด๋ ค์ ๋ฌด์จ ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ ์ง ํ๋จํ๊ธฐ ๊ณค๋ํ๊ธฐ ๋๋ฌธ์ solved.ac๊ฐ ๋ง๋ค์ด์ก๋ค. solved.ac๊ฐ ์๊ธด ์ดํ ์ ๊ตญ์์ 200๋ช ์ด์์ ๊ธฐ์ฌ์ ๋ถ๋ค๊ป์ ์์คํ ๋์ด๋ ์๊ฒฌ์ ๊ณต์ ํด ์ฃผ์ จ๊ณ , ์ง๊ธ์ ์ฝ 7,000๋ฌธ์ ์ ๋์ด๋ ํ๊ธฐ๊ฐ ๋ถ๊ฒ ๋์๋ค.
์ด๋ค ๋ฌธ์ ์ ๋์ด๋๋ ๊ทธ ๋ฌธ์ ๋ฅผ ํผ ์ฌ๋๋ค์ด ์ ์ถํ ๋์ด๋ ์๊ฒฌ์ ๋ฐํ์ผ๋ก ๊ฒฐ์ ํ๋ค. ๋์ด๋ ์๊ฒฌ์ ๊ทธ ์ฌ์ฉ์๊ฐ ์๊ฐํ ๋์ด๋๋ฅผ ์๋ฏธํ๋ ์ ์ ํ๋๋ก ์ฃผ์ด์ง๋ค. solved.ac๊ฐ ์ฌ์ฉ์๋ค์ ์๊ฒฌ์ ๋ฐํ์ผ๋ก ๋์ด๋๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์์ง ์๋ฌด ์๊ฒฌ์ด ์๋ค๋ฉด ๋ฌธ์ ์ ๋์ด๋๋ 0์ผ๋ก ๊ฒฐ์ ํ๋ค.
- ์๊ฒฌ์ด ํ๋ ์ด์ ์๋ค๋ฉด, ๋ฌธ์ ์ ๋์ด๋๋ ๋ชจ๋ ์ฌ๋์ ๋์ด๋ ์๊ฒฌ์ 30% ์ ์ฌํ๊ท ์ผ๋ก ๊ฒฐ์ ํ๋ค.
์ ์ฌํ๊ท ์ด๋ ๊ทน๋จ์ ์ธ ๊ฐ๋ค์ด ํ๊ท ์ ์๊ณกํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ๊ฐ์ฅ ํฐ ๊ฐ๋ค๊ณผ ๊ฐ์ฅ ์์ ๊ฐ๋ค์ ์ ์ธํ๊ณ ํ๊ท ์ ๋ด๋ ๊ฒ์ ๋งํ๋ค. 30% ์ ์ฌํ๊ท ์ ๊ฒฝ์ฐ ์์์ 15%, ์๋์์ 15%๋ฅผ ๊ฐ๊ฐ ์ ์ธํ๊ณ ํ๊ท ์ ๊ณ์ฐํ๋ค. ๋ฐ๋ผ์ 20๋ช ์ด ํฌํํ๋ค๋ฉด, ๊ฐ์ฅ ๋์ ๋์ด๋์ ํฌํํ 3๋ช ๊ณผ ๊ฐ์ฅ ๋ฎ์ ๋์ด๋์ ํฌํํ 3๋ช ์ ํฌํ๋ ํ๊ท ๊ณ์ฐ์ ๋ฐ์ํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค.
์ ์ธ๋๋ ์ฌ๋์ ์๋ ์, ์๋์์ ๊ฐ๊ฐ ๋ฐ์ฌ๋ฆผํ๋ค. 25๋ช ์ด ํฌํํ ๊ฒฝ์ฐ ์, ์๋์์ ๊ฐ๊ฐ 3.75๋ช ์ ์ ์ธํด์ผ ํ๋๋ฐ, ์ด ๊ฒฝ์ฐ ๋ฐ์ฌ๋ฆผํด 4๋ช ์ฉ์ ์ ์ธํ๋ค.
๋ง์ง๋ง์ผ๋ก, ๊ณ์ฐ๋ ํ๊ท ๋ ์ ์๋ก ๋ฐ์ฌ๋ฆผ๋๋ค. ์ ์ฌํ๊ท ์ด 16.7์ด์๋ค๋ฉด ์ต์ข ๋์ด๋๋ 17์ด ๋๋ค.
์ฌ์ฉ์๋ค์ด ์ด๋ค ๋ฌธ์ ์ ์ ์ถํ ๋์ด๋ ์๊ฒฌ ๋ชฉ๋ก์ด ์ฃผ์ด์ง ๋, solved.ac๊ฐ ๊ฒฐ์ ํ ๋ฌธ์ ์ ๋์ด๋๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ๋์ด๋ ์๊ฒฌ์ ๊ฐ์ n์ด ์ฃผ์ด์ง๋ค. (0 ≤ n ≤ 3 × 105)
์ดํ ๋ ๋ฒ์งธ ์ค๋ถํฐ 1 + n๋ฒ์งธ ์ค๊น์ง ์ฌ์ฉ์๋ค์ด ์ ์ถํ ๋์ด๋ ์๊ฒฌ n๊ฐ๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ๋ชจ๋ ๋์ด๋ ์๊ฒฌ์ 1 ์ด์ 30 ์ดํ์ด๋ค.
์ถ๋ ฅ
solved.ac๊ฐ ๊ณ์ฐํ ๋ฌธ์ ์ ๋์ด๋๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด์ฌ์ด๋ ์นํด์ง๊ธฐ
ํ์ด์ฌ์ deque
ํ์ด์ฌ์์ deque ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
from collections import deque
b = [int(input()) for _ in range(a)]
b.sort()
dq = deque(b)
for _ in range(cut):
dq.popleft()
dq.pop()
for๋ฌธ ํ์ค๋ก ์ฐ๊ธฐ
[๊ฒฐ๊ณผ for ๋ฐ๋ณต๋ฌธ] ํํ๋ก for๋ฌธ์ ํ์ค๋ก ์ถ์ฝํ์ฌ ์์ฑํ ์๋ ์๋ค.
b = [int(input()) for _ in range(a)]
round ํจ์
ํ์ด์ฌ์ round ํจ์๋ ๋ฐ์ฌ๋ฆผ์ ํ๋ ํจ์์ง๋ง ๋์์ด ์์๊ณผ ๋ฌ๋๋ค.
round()๋ ์ฌ์ฌ์ค์ ์์น์ ๋ฐ๋ฅธ๋ค๊ณ ํ๋ค.
๋ฐ์ฌ๋ฆผํ ์๋ฆฌ์ ์๊ฐ 5์ผ ๋ ๋ฐ์ฌ๋ฆผ ํ๋ ์ํฉ์์ ์์๋ฆฌ์ ์ซ์๊ฐ ์ง์๋ฉด ๋ด๋ฆผํ๊ณ ํ์๋ฉด ์ฌ๋ฆผ ํ๋ค.
์ด ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ๋ณดํต ์๊ฐํ๋ ๋ฐ์ฌ๋ฆผ์ ์ํํ๊ธฐ์ round ํจ์๋ ์ ์ ํ์ง ์๋ค๊ณ ์๊ฐ๋๋ค.
0.5๋ฅผ ๋ํ๋ค์ ๋ด๋ฆผ์ ํ๋๊ฒ์ด ๋ ์ ํํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ์ ์๊ฒ ๋ค.
์ ๋ ฅ์๊ฐ ๋จ์ถํ๊ธฐ
์ ๋ ฅ์ด ๋๋ ค์ ์๊ฐ์ด๊ณผ๊ฐ ์ผ์ด๋๋ค๋ฉด ๋ค์ ๊ตฌ๋ฌธ์ ์ถ๊ฐํ์ฌ ์ ๋ ฅ ์๊ฐ์ ๋จ์ถ์ํฌ ์ ์๋ค.
import sys
input = sys.stdin.readline
์ฝ๋
import sys
from collections import deque
input = sys.stdin.readline
a = int(input())
cut = int(a * 0.15 + 0.5)
b = [int(input()) for _ in range(a)]
b.sort()
dq = deque(b)
if dq:
for _ in range(cut):
dq.popleft()
dq.pop()
print(int(sum(dq) / len(dq) + 0.5))
else:
print(0)
https://www.acmicpc.net/problem/18110
18110๋ฒ: solved.ac
5๋ช ์ 15%๋ 0.75๋ช ์ผ๋ก, ์ด๋ฅผ ๋ฐ์ฌ๋ฆผํ๋ฉด 1๋ช ์ด๋ค. ๋ฐ๋ผ์ solved.ac๋ ๊ฐ์ฅ ๋์ ๋์ด๋ ์๊ฒฌ๊ณผ ๊ฐ์ฅ ๋ฎ์ ๋์ด๋ ์๊ฒฌ์ ํ๋์ฉ ์ ์ธํ๊ณ , {5, 5, 7}์ ๋ํ ํ๊ท ์ผ๋ก ๋ฌธ์ ๋์ด๋๋ฅผ ๊ฒฐ์ ํ๋ค.
www.acmicpc.net
'๐ฅ๏ธ Computer > Algorithm Solution' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] level1 : ์ฝ์์ ๊ฐ์์ ๋ง์ (0) | 2023.07.28 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] level1 : ๋ด์ (0) | 2023.07.27 |
[BAEKJOON] 27866๋ฒ : ๋ฌธ์์ ๋ฌธ์์ด (0) | 2023.07.25 |
[BAEKJOON] 1157๋ฒ : ๋จ์ด ๊ณต๋ถ (0) | 2023.07.24 |
[BAEKJOON] 10814๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2021.12.11 |