1 ๋ถ„ ์†Œ์š”

๋ฐฑ์ค€ ์‚ฌ์ดํŠธ ๋งํฌ

๋ฌธ์ œ

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)

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ