[๋ฐฑ์ค 11508๋ฒ] [๐ฅ4] 2+1 ์ธ์ผ (python)
๋ฌธ์
KSG ํธ์์ ์์๋ ๊ณผ์ผ์ฐ์ , ๋๋งํน์๊ตฌ๋ฅดํธ ๋ฑ์ ์ ์ ํ์ โ2+1 ์ธ์ผโํ๋ ํ์ฌ๋ฅผ ํ๊ณ ์์ต๋๋ค. KSG ํธ์์ ์์ ์ ์ ํ 3๊ฐ๋ฅผ ํ ๋ฒ์ ์ฐ๋ค๋ฉด ๊ทธ์ค์์ ๊ฐ์ฅ ์ผ ๊ฒ์ ๋ฌด๋ฃ๋ก ์ง๋ถํ๊ณ ๋๋จธ์ง ๋ ๊ฐ์ ์ ํ ๊ฐ๊ฒฉ๋ง ์ง๋ถํ๋ฉด ๋ฉ๋๋ค. ํ ๋ฒ์ 3๊ฐ์ ์ ์ ํ์ ์ฌ์ง ์๋๋ค๋ฉด ํ ์ธ ์์ด ์ ๊ฐ๋ฅผ ์ง๋ถํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 7๊ฐ์ ์ ์ ํ์ด ์์ด์ ๊ฐ ์ ํ์ ๊ฐ๊ฒฉ์ด 10, 9, 4, 2, 6, 4, 3์ด๊ณ ์ฌํ์ด๊ฐ (10, 3, 2), (4, 6, 4), (9)๋ก ์ด 3๋ฒ์ ๊ฑธ์ณ์ ๋ฌผ๊ฑด์ ์ฐ๋ค๋ฉด ์ฒซ ๋ฒ์งธ ๊พธ๋ฌ๋ฏธ์์๋ 13์์, ๋ ๋ฒ์งธ ๊พธ๋ฌ๋ฏธ์์๋ 10์์, ์ธ ๋ฒ์งธ ๊พธ๋ฌ๋ฏธ์์๋ 9์์ ์ง๋ถํด์ผ ํฉ๋๋ค.
์ฌํ์ด๋ KSG ํธ์์ ์์ ์น๊ตฌ๋ค๊ณผ ๊ฐ์ด ๋จน์ ์ด Nํฉ์ ์ ์ ํ์ ๊ตฌ์ ํ๋ ค๊ณ ํฉ๋๋ค. ์ฌํ์ด๋ฅผ ๋์ ์ต์๋น์ฉ์ผ๋ก ์ ์ ํ์ ๊ตฌ์ ํ ์ ์๋๋ก ๋์์ฃผ์ธ์!
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์๋ ์ ์ ํ์ ์ N (1 โค N โค 100,000)์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ์ ์ ํ์ ๊ฐ๊ฒฉ Ci (1 โค Ci โค 100,000)๊ฐ ์ฃผ์ด์ง๋๋ค.
์ถ๋ ฅ
์ฌํ์ด๊ฐ N๊ฐ์ ์ ์ ํ์ ๋ชจ๋ ์ด ๋ ํ์ํ ์ต์๋น์ฉ์ ์ถ๋ ฅํฉ๋๋ค. ์ ๋ต์ 2^31-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์์ ์ ๋ ฅ 1
4
3
2
3
2
์์ ์ถ๋ ฅ 1
8
์์ ์ ๋ ฅ 2
6
6
4
5
5
5
5
์์ ์ถ๋ ฅ 2
21
ํํธ
-
์์ 1 : ์ฌํ์ด๊ฐ (3, 2, 2), (3)์ผ๋ก ์ด 2๋ฒ์ ๊ฑธ์ณ์ ์ ์ ํ์ ์ฌ๋ฉด ๋ฉ๋๋ค.
-
์์ 2 : ์ฌํ์ด๊ฐ (6, 4, 5), (5, 5, 5)๋ก ์ด 2๋ฒ์ ๊ฑธ์ณ์ ์ ์ ํ์ ์ฌ๋ฉด ๋ฉ๋๋ค.
๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋งํ๋ ๋ถ๋ถ
- ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ ์ธ๋ฑ์ค 3๋ฒ์งธ, 6๋ฒ์งธ, 9๋ฒ์งธ๋ง๋ค ์ ์ฒดํฉ์์ ๋นผ์ฃผ๊ฑฐ๋ 3๋ฒ์งธ, 6๋ฒ์งธ, 9๋ฒ์งธ๋ง๋ค count ์ํด์ฃผ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํ๋๋ฐ ์ฝ๋๋ก ๊ตฌํํ๊ธฐ๊ฐ ํท๊ฐ๋ ธ๋ค.
- ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ ๋ค์ ๊ณต๋ถํ๊ธฐ
์ฝ๋
ver(1)
import sys
N = int(sys.stdin.readline())
num = []
result = 0
k = 2
for _ in range(N):
num.append(int(sys.stdin.readline()))
num.sort(reverse = True)
for i in range(N):
if (i == k):
k+=3
continue
result += num[i]
print(result)
ver(2)
import sys
n = int(sys.stdin.readline())
k = []
result = 0
for _ in range(n):
k.append(int(sys.stdin.readline()))
k.sort(reverse=True)
result = 0
for i in range(2, len(k), 3):
result += k[i]
print(sum(k)-result)
๋๊ธ๋จ๊ธฐ๊ธฐ