์ฝ”ํ…Œ์ค€๋น„

<๊ทธ๋ฆฌ๋””> ๋ฐฑ์ค€ 11508๋ฒˆ. 2+1์„ธ์ผ (์‹ค๋ฒ„ 4)

์š”๋Œœ๋‹ค 2023. 1. 7. 16:28

https://www.acmicpc.net/problem/11508

 

11508๋ฒˆ: 2+1 ์„ธ์ผ

KSG ํŽธ์˜์ ์—์„œ๋Š” ๊ณผ์ผ์šฐ์œ , ๋“œ๋งํ‚น์š”๊ตฌ๋ฅดํŠธ ๋“ฑ์˜ ์œ ์ œํ’ˆ์„ '2+1 ์„ธ์ผ'ํ•˜๋Š” ํ–‰์‚ฌ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. KSG ํŽธ์˜์ ์—์„œ ์œ ์ œํ’ˆ 3๊ฐœ๋ฅผ ํ•œ ๋ฒˆ์— ์‚ฐ๋‹ค๋ฉด ๊ทธ์ค‘์—์„œ ๊ฐ€์žฅ ์‹ผ ๊ฒƒ์€ ๋ฌด๋ฃŒ๋กœ ์ง€๋ถˆํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๋‘

www.acmicpc.net

1์ฐจ ์‹œ๋„ :

import sys
input = sys.stdin.readline
from collections import deque
n = int(input())
cost = []
total = 0
for _ in range(n):
  cost.append(int(input()))

# 2 3 4 4 6 9 10
# 10 9 6 4 4 3 2
while cost :
  cost.sort(reverse=True)
  if len(cost) < 3:
    total += sum(cost)
    break
  total += cost.pop(0)
  cost.pop()
  total += cost.pop()

print(total)

"""
7
10
9
6
4
4
3
2

"""

์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค. ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ๊ณ„์†ํ•ด์„œ sortํ•ด์ค˜์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™๋‹ค..  

๋‹ค์‹œ ๋ณด๋‹ˆ๊น ์ž˜๋ชป๋œ ์ฝ”๋“œ์ธ ๋“ฏ. ๋ฌธ์ œ์— ์ ํžŒ ์˜ˆ์‹œ๋ฅผ ์ฝ๊ณ  ๋” ํ—ท๊ฐˆ๋ ธ๋‹ค. ๋ฌธ์ œ์—์„  10,9,6,4,4,3,2๋ฅผ  (10, 3, 2), (4, 6, 4), (9)๋กœ ๋ฌถ์–ด 13+10+9=32์›์„ ์ง€๋ถˆํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ ํ˜€ ์žˆ์–ด์„œ ์ด๋ ‡๊ฒŒ ๋ฌถ์ด๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋Š”๋ฐ,

๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ 3๊ฐœ์˜ ์ œํ’ˆ ์ค‘ ๊ฐ€์žฅ ์‹ผ ์ œํ’ˆ์ด ๋ฌด๋ฃŒ์ด๋ฏ€๋กœ ์ด 3๋ฒˆ์งธ ์ œํ’ˆ์ด ์ตœ๋Œ€ํ•œ ๋น„์‹ธ์•ผํ•œ๋‹ค.

๊ทธ๋Ÿผ (10,9,6) (4,4,3) (2) =>19+8+2 = 29์›์œผ๋กœ ์ด ๋ฐฉ๋ฒ•์ด ๋” ์ตœ์†Œ๋น„์šฉ์ด๋‹ค.

 

๋ญ์ง€.. ๋ฌธ์ œ๊ฐ€ ์ž˜๋ชป๋์„ ํ™•๋ฅ ๋ณด๋‹ค ๋‚ด ์ƒ๊ฐ์ด ํ‹€๋ ธ์„ ํ™•๋ฅ ์ด ๋” ํด๊ฑฐ ๊ฐ™์€๋ฐ ์˜๋ฌธ์ด๋‹ค...

 

๋ฌดํŠผ ๋‹ค์‹œ ์ƒ๊ฐํ•œ ๋ฐฉ์‹๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋Š”๋ฐ,

import sys
input = sys.stdin.readline

n = int(input())
cost = []
# 10 9 4 4 6 3 2
for _ in range(n):
  cost.append(int(input()))

total = sum(cost)

cost.sort(reverse=True)
2
for i in range(n):
  if i %3==2: #์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ๋‚˜๋จธ์ง€ 2๊ฐ€ 3,6,9..๋ฒˆ์งธ๋ฅผ ๋œปํ•จ
    total -= cost[i]  
   
  
  
print(total)  
"""
7
10
9
6
4
4
3
2

"""

์ •๋‹ต์ด๋‹ค!

๋ฌธ์ œ ์˜ˆ์‹œ๋ฅผ ๋„ฃ์–ด๋ดค๋Š”๋ฐ, 29์› ๋‚˜์˜จ๋‹ค!