ํฐ ์ˆ˜์˜ ๋ฒ•์น™- ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค

2020. 9. 2. 17:00ใ†์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค/๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํฐ ์ˆ˜์˜ ๋ฒ•์น™- ์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค

 

๋ฌธ์ œ :

 

'ํฐ ์ˆ˜์˜ ๋ฒ•์น™'์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ†ต๊ณ„ ๋ถ„์•ผ์—์„œ ๋‹ค๋ฃจ์–ด์ง€๋Š” ๋‚ด์šฉ์ด์ง€๋งŒ ๋™๋นˆ์ด๋Š” ๋ณธ์ธ๋งŒ์˜ ๋ฐฉ์‹์œผ๋กœ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋™๋นˆ์ด์˜ ํฐ ์ˆ˜์˜ ๋ฒ•์น™์€ ๋‹ค์–‘ํ•œ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ ์ฃผ์–ด์ง„ ์ˆ˜๋“ค์„ M๋ฒˆ ๋”ํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฒ•์น™์ด๋‹ค. ๋‹จ ๋ฐฐ์—ด์˜ ํŠน์ •ํ•œ ์ธ๋ฑ์Šค(๋ฒˆํ˜ธ)์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜๊ฐ€ ์—ฐ์†ํ•ด์„œ K๋ฒˆ์„ ์ดˆ๊ณผํ•˜์—ฌ ๋”ํ•ด์งˆ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ์ด ๋ฒ•์น™์˜ ํŠน์ง•์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ˆœ์„œ๋Œ€๋กœ 2, 4, 5, 4, 6์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ M์ด 8์ด๊ณ , K๊ฐ€ 3์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. 

์ด ๊ฒฝ์šฐ ํŠน์ •ํ•œ ์ธ๋ฑ์Šค์˜ ์ˆ˜๊ฐ€ ์—ฐ์†ํ•ด์„œ ์„ธ ๋ฒˆ๊นŒ์ง€๋งŒ ๋”ํ•ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํฐ ์ˆ˜์˜ ๋ฒ•์น™์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ๋Š” 6+6+6+5+6+6+6+5์ธ 46์ด ๋œ๋‹ค.

๋‹จ, ์„œ๋กœ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆœ์„œ๋Œ€๋กœ 3, 4, 3, 4, 3์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ M์ด 7์ด๊ณ , K๊ฐ€ 2๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ์›์†Œ์— ํ•ด๋‹นํ•˜๋Š” 4์™€ ๋„ค ๋ฒˆ์จฐ ์›์†Œ์— ํ•ด๋‹นํ•˜๋Š” 4๋ฅผ ๋ฒˆ๊ฐˆ์•„ ๋‘ ๋ฒˆ์”ฉ ๋”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ 4+4+4+4+4+4+4์ธ 28์ด ๋„์ถœ๋œ๋‹ค. 

๋ฐฐ์—ด์˜ ํฌ๊ธฐ N, ์ˆซ์ž๊ฐ€ ๋”ํ•ด์ง€๋Š” ํšŸ์ˆ˜ M, ๊ทธ๋ฆฌ๊ณ  K๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋™๋นˆ์ด์˜ ํฐ ์ˆ˜์˜ ๋ฒ•์น™์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ ์กฐ๊ฑด: 

  • ์ฒซ์งธ ์ค„์— N(2<=N<=1,000), M(1<=M<=10,000), K(1<=K<=10,000)์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ๋‘˜์งธ ์ค„์— N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๋‹จ ๊ฐ๊ฐ์˜ ์ž์—ฐ์ˆ˜๋Š” 1์ด์ƒ 10,000 ์ดํ•˜์˜ ์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค.
  • ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” K๋Š” ํ•ญ์ƒ M๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

์ถœ๋ ฅ ์กฐ๊ฑด:

  • ์ฒซ์งธ ์ค„์— ๋™๋นˆ์ด์˜ ํฐ ์ˆ˜์˜ ๋ฒ•์น™์— ๋”ฐ๋ผ ๋”ํ•ด์ง„ ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

ํ•„์ž์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” ์ด๋ ‡๋‹ค.

 

n,m,k = map(int, input().split())
array = []
array = list(map(int,input().split()))
array.sort(reverse = True)
array2 =[]
count =0

while count!=m:

  for i in range(k):
    if len(array2) == 8:
      break
    array2.append(array[0])
  if len(array2) ==8:
    break
  array2.append(array[1])


sum =0

for i in range(m):
  sum+=array2[i]

print(sum)

 

์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— for๋ฅผ ์ด์šฉํ•œ ์‹์„ ๋‘๋ฒˆ ์‚ฌ์šฉํ–ˆ๋‹ค. 

 

ํ•˜์ง€๋งŒ ์ฑ…์˜ ์ €์ž๋Š” '๊ฐ€์žฅ ํฐ ์ˆ˜๋Š” k๋ฒˆ ๋”ํ•ด์ง€๊ณ , ๊ทธ ๋‹ค์Œ ํฐ ์ˆ˜๋Š” 1๋ฒˆ ๋”ํ•ด์ง„๋‹ค'๋ผ๋Š” ํ’€์ด๋ฅผ ๋‚ด๋†“์•˜๋‹ค.

์ˆ˜๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋”ํ•ด์ง„๋‹ค๋Š” ๊ฒƒ์„ ์ด์šฉํ•ด์„œ ํ‘ผ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด m์€ 7 k๋Š” 2๋ผ๊ณ  ํ•ด๋ณด์ž. ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์—ด์ด 5,6,7์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, 7 7 6 7 7 6 7์ด๋ ‡๊ฒŒ ๋‚˜์˜จ๋‹ค. 7 7 6์ด ๋ฐ˜๋ณต๋˜๊ณ , ๋‚˜๋จธ์ง€๋กœ 7์ด ๋‚จ๋Š”๋‹ค. ์ฆ‰ 7 7 6์€ k+1๋ฒˆ์ด๊ณ  m์„ k+1๋กœ ๋‚˜๋ˆˆ๋‹ค๋ฉด ์ˆ˜์—ด์ด ๋ฐ˜๋ณต๋˜๋Š” ์ˆซ์ž๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ๊ฑฐ๊ธฐ์— k๋ฅผ ๊ณฑํ•˜๋ฉด ๊ฐ€์žฅ ํฐ ์ˆ˜๊ฐ€ ๋”ํ•ด์ง€๋Š” ํšŸ์ˆ˜๊ฐ€ ๊ณ„์‚ฐ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์—ด์ด ๋๋‚˜๊ณ  ๋‚จ๋Š” ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋Š” m์„ k+1๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋˜ํ•œ ๋”ํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์†Œ์Šค ์ฝ”๋“œ

n,m,k = map(int,input().split())

array = []

array.append(list(map(int,input().split())))

array.sort()
first = array[n-1]
second = array[n-2]

count=0

count = (m//k+1)*k
count += m %(k+1)

result =0
result += (count) * first
result += (m-count) * second

 

๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์•Œ๊ฒŒ ๋œ ์ 

- ํ•„์ž๋Š” ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•ด for๋ฅผ ๋‘ ๋ฒˆ ์“ฐ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €์ž๋Š” m์˜ ์ˆ˜๋ฅผ ๋‚ฎ์ถฐ๊ฐ€๋ฉด์„œ result๊ฐ’์„ ๊ณ„์†ํ•ด์„œ ๋Œ› ์ฃผ์—ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋ฉด์—์„œ ์กฐ๊ธˆ ๋” ์‹ ๊ฒฝ์„ ์จ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์˜ ๋ฒ•์น™๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์€ ์ˆ˜์—ด์„ ํ†ตํ•ด์„œ๋„ ํ’€ ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.